0

我希望枚举 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)):

但是,字典键没有像上面那样被索引。那么我该如何执行这个迭代呢?

4

2 回答 2

1

itertools.combinations可能会有所帮助。

于 2013-10-05T22:24:03.853 回答
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 语法)

于 2013-10-05T22:26:11.940 回答