在python中枚举2个字典键组合

时间:2013-10-05 22:14:46

标签: python iteration combinations

我希望枚举python中所有2个字典键组合。例如,如果我有一些字典,如:

di = {'a': [1, 2 ,5], 'b': "haha", 'c': 34, 'd': 24}

现在,假设每个密钥都按其顺序编制索引。例如,a1 b2,依此类推。

然后我们可以通过熟悉的迭代来获得所有2种组合:

for i in range(len(di)):
    for j in range(i+1, len(di)):

但是,字典键未按上述索引。那么我该如何执行此迭代呢?

2 个答案:

答案 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语法)