比较字典中的所有元素

时间:2014-03-21 08:55:46

标签: python dictionary

有没有更好的方法呢? (避免系统地比较key1和key2)

for key1 in my_dict:
    for key2 in my_dict:
        if key1 != key2:
             #operation on my_dict[key1] and my_dict[key2]

2 个答案:

答案 0 :(得分:4)

您可以使用itertools.combinations获取所有密钥对:

import itertools

for k1, k2 in itertools.combinations(my_dict, 2):

这假定订单并不重要;如果是,请使用itertools.permutations

for k1, k2 in itertools.permutations(my_dict, 2):

答案 1 :(得分:1)

如果key1和key2是同一个字典的键,那么它们总是不同的。另一方面,如果您想要的是对* my_dict *键集的内部笛卡尔积进行操作,您可以尝试类似:

map(lambda x: operation(x[0], x[1]), itertools.product(my_dict.keys(),my_dict.keys()))