【发布时间】:2010-11-03 15:01:13
【问题描述】:
我有两本字典
{key1:[list_of_objects ], {key2:[list_of_objects ]}
例如
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
进行此比较的最快方法是什么?
【问题讨论】:
-
你有办法做到这一点吗?一旦你这样做了,就该担心速度了。
-
你想对dict2[key2]中的'i'做什么?在dict1中没有对应的值。
-
不确定您到底想做什么。我假设你有一个 MyClass 类,它有一个成员函数 some_function,它计算一个可以通过 == 比较的数字(或其他可比较的)。现在,你想在每场比赛中都做些什么而不关心列表中的顺序吗?如果 dict1['key1'] = [A,B,C] 和 dict2['key1']=[B,C,A] 它应该找到任何匹配项吗? (大概没有,因为列表没有排列)。在执行某项操作之前,您是否需要匹配列表键中的所有对象?您是要遍历所有键还是只比较 key1?
-
我猜必须对列表进行排序才能完美匹配,如果一个列表中有项目而不是另一个列表中的项目,则 if 测试应该在这些项目上失败 - 因此记录!
标签: python dictionary compare