我有两本词典,但为了简化起见,我要这两本:
>>> x = dict(a=1, b=2)
>>> y = dict(a=2, b=2)
现在,我想比较x
中的每个key, value
对在y
中是否具有相同的对应值。所以我写了这个:
>>> for x_values, y_values in zip(x.iteritems(), y.iteritems()):
if x_values == y_values:
print 'Ok', x_values, y_values
else:
print 'Not', x_values, y_values
而且它是工作的,因为tuple
被返回,然后被比较是否相等。
我的问题:
这是对的吗?有没有更好的方法来做这件事?最好不要太快,我说的是代码优雅。
更新:我忘了提到我必须检查多少对key, value
是相等的。
如果你想知道两个字典中有多少值匹配,你应该说:)
可能是这样的:
你想做的只是
x==y
你这样做不是个好主意,因为字典里的词条不应该有任何顺序。您可能正在比较
[('a',1),('b',1)]
和[('b',1), ('a',1)]
(相同的字典,不同的顺序)。例如,请参见:
区别只是一个项目,但是你的算法会发现所有的项目都是不同的
相关问题 更多 >
编程相关推荐