【问题标题】:How to check if values in dictionaries are the same? Python如何检查字典中的值是否相同? Python
【发布时间】:2015-10-16 02:42:53
【问题描述】:

我有一本由以下人制作的字典:

d={'name':(values), (values), (values), 'name2':(values),(values), ...ecc}

所以值是元组。 我想检查一些与某个值关联的元组是否相同。

【问题讨论】:

  • 你的括号不匹配。
  • 提示:== 运算符检查相等性...
  • @n9code 请不要编辑代码来添加/删除括号等内容。相反,请为 OP 质疑他们的意图发表评论。
  • 请添加一个 minimal 示例,其中 actual 值包含 matchingnon-matching 元组。请包括所需的结果。如果您尝试过,也请发布。

标签: python dictionary tuples


【解决方案1】:

您如何定义“相同”? (1, 2) 是否应该与 (2, 1)“相同”?

如果(1, 2)(2, 1) 不“相同”,您可以简单地迭代这些值并使用== 运算符检查它们是否相等。

如果(1, 2)(2, 1)“相同”,您可以对它们进行排序(或简单地将它们转换为set),然后按照上述方法进行操作。

编辑:由于您澄清了您想要第一个行为,您可以创建一个具有字典理解的新字典(假设您使用的是 Python 2.7 或更高版本)并将每个元组列表转换为一个集合元组数:

d = {'a': [(1,1), (1,1), (1,2)], 'b': [(3,3), (2,5), (3,3)]}

new_d = { k:list(set(v)) for k,v in d.iteritems() }

>> {'a': [(1, 2), (1, 1)], 'b': [(2, 5), (3, 3)]}

【讨论】:

  • (1,2) 不等于 (2,1)
  • a = (1, 2) b = (2, 1) set(a) == set(b) 返回True。由 OP 决定“相同”的含义。
  • 不,元组中的不同值总是以相同的顺序!
  • OP 想要 check 这意味着一个布尔结果。这会删除重复项。
猜你喜欢
  • 2013-01-04
  • 1970-01-01
  • 2012-01-03
  • 2018-12-08
  • 2021-11-30
  • 2014-09-16
  • 2021-12-19
  • 1970-01-01
  • 2014-10-03
相关资源
最近更新 更多