如何比较两本有序的词典?

2024-05-17 21:07:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何比较两本订购的词典?

我的结构如下:

dict_a = OrderedDict([(1,4), (2,5), (3,3), (4,5), (5,4), (6,4), (7,4), (8,3), (9,4)])

dict_b = OrderedDict([(1,4), (2,2), (3,1), (4,4), (5,6), (6,7), (7,4), (8,2), (9,5)])

for values in score_dict.items():
if values == course_dict.values():
    print 'match!'
else:
    print 'No match!'

它遍历,两个列表都是有序的,所以它应该在1和7上匹配? 提前谢谢!


Tags: noinforifmatchitems结构else
3条回答

如果希望在每个排序位置的相交元素相同:

>>> from collections import OrderedDict
>>> dict_a = OrderedDict([(1,4), (2,5), (3,3), (4,5), (5,4), (6,4), (7,4), (8,3), (9,4)])
>>> dict_b = OrderedDict([(1,4), (2,2), (3,1), (4,4), (5,6), (6,7), (7,4), (8,2), (9,5)])
>>> [i1 for i1, i2 in zip(dict_a.iteritems(), dict_b.iteritems()) if i1 == i2]
[(1, 4), (7, 4)]

如果您不介意订购:

>>> set(dict_a.items()).intersection(set(dict_b.items()))
set([(7, 4), (1, 4)])
>>> for x in dict_a.items():
    if x in dict_b.items():
        print(x)


(1, 4)
(7, 4)

您可以使用items()和内置的zip()函数:

for i, j in zip(dict_a.items(), dict_b.items()):
    if i == j:
        print(i)

输出:

(1, 4)
(7, 4)

相关问题 更多 >