我希望枚举python中所有2个字典键组合。例如,如果我有一些字典,如:
di = {'a': [1, 2 ,5], 'b': "haha", 'c': 34, 'd': 24}
现在,假设每个密钥都按其顺序编制索引。例如,a
将1
b
为2
,依此类推。
然后我们可以通过熟悉的迭代来获得所有2种组合:
for i in range(len(di)):
for j in range(i+1, len(di)):
但是,字典键未按上述索引。那么我该如何执行此迭代呢?
答案 0 :(得分:1)
itertools.combinations可能会有所帮助。
答案 1 :(得分:1)
只要您不希望特殊处理将该列表分为“a”:
list(itertools.combinations(di.values(),2))
Out[6]:
[([1, 2, 5], 34),
([1, 2, 5], 'haha'),
([1, 2, 5], 24),
(34, 'haha'),
(34, 24),
('haha', 24)]
(python 3语法)