比较字典中的所有元素

4 投票
2 回答
2032 浏览
提问于 2025-04-17 23:15

有没有更好的方法来做到这一点?(避免每次都去比较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 个回答

1

如果key1和key2是同一个字典里的键,那么它们总是不同的。另一方面,如果你想对*my_dict*这个字典的键进行某种操作,可以试试下面的代码:

map(lambda x: operation(x[0], x[1]), itertools.product(my_dict.keys(),my_dict.keys()))
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):

撰写回答