我有两本词典
{key1:[list_of_objects ], {key2:[list_of_objects ]}
e.g
dict1 = {key1:['a', 'b', 'c', 'd' ], key2: ['f', 'g', 'h' ] }
dict2 = {key1:['a', 'b', 'c', 'd'], key2: ['f', 'g', 'h', 'i' ] }
对于dict1和dict2中的eack键,我想比较列表中的项目。
即将dict1 [key1]中的每个值与dict2 [key1]中的相应值进行比较,依此类推。列表中的项目是对象,因此将运行类似
的内容if dict1[key1][0].some_function() = = dict2[key1][0].some_function()
then condition
运行此比较的最快方法是什么?
答案 0 :(得分:0)
for key in dict1.keys():
for a,b in zip(dict1[key],dict2[key]):
if a.some_function() == b.some_function():
#do something
如果您的列表很长,则可以从zip
替换izip
collections
。
答案 1 :(得分:0)
套装让它变得简单:
for key in dict1.keys():
diff = set(dict1[key]).symmetric_difference(dict2[key])
if diff:
print "%s: %s" % (key, diff) # or do whatever