0

Pythonで辞書キーの2つの組み合わせすべてを列挙したいと思います。たとえば、次のような辞書があるとします。

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

ここで、各キーがその順序で索引付けされているとします。たとえば、abe 1 bwould be2などです。

次に、おなじみの反復を実行して、すべての 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 に答える