2013-10-05 22 views
0

我想枚举python中的字典键的所有2种组合。例如,如果我有一些字典,如:枚举python中的字典键的两种组合

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

现在,假设每个密钥都按其顺序进行索引。例如,a将是1b将是2等等。

然后我们可以做熟悉的迭代得到所有2组合:

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

但是,字典的键不被索引同上。那么我如何执行这个迭代?

回答

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)] 

(蟒蛇3语法)

+0

是的,我这样做是有di.keys( ),这是我想要的。 – CodeKingPlusPlus