こんにちは、マップされたリストを取得して、考えられるすべての組み合わせを印刷するにはどうすればよいですか?
dictマッピングが={1:[a、b]、2:[c、d].....であると言います。
したがって、リスト[1,2]と上記のサンプルマッピングを使用して、ペアa、dとc、dのすべての可能な組み合わせをリストに出力したいと思います。
こんにちは、マップされたリストを取得して、考えられるすべての組み合わせを印刷するにはどうすればよいですか?
dictマッピングが={1:[a、b]、2:[c、d].....であると言います。
したがって、リスト[1,2]と上記のサンプルマッピングを使用して、ペアa、dとc、dのすべての可能な組み合わせをリストに出力したいと思います。
itertoolsモジュールの組み合わせ関数を見てください。
ab
に対するすべての組み合わせを探している場合はcd
、製品関数が役立ちます。
>>> d = {1: ['a','b'], 2: ['c', 'd']}
>>> for t in product(*d.values()):
print t
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')
さまざまなサイズのrabcd
について、一度に取得したrのすべての組み合わせを探している場合は、組み合わせ関数で作業を完了できます。
>>> for r in range(5):
for t in combinations('abcd', r):
print t
()
('a',)
('b',)
('c',)
('d',)
('a', 'b')
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')
('c', 'd')
('a', 'b', 'c')
('a', 'b', 'd')
('a', 'c', 'd')
('b', 'c', 'd')
('a', 'b', 'c', 'd')
from itertools import product
mapping = {1:['a','b'], 2:['c','d']}
data = [1, 2]
for combo in product(*(mapping[d] for d in data)):
print combo
結果は
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')
あなたが実際に欲しいもののように聞こえる編集
strings = [''.join(combo) for combo in product(*(mapping[d] for d in data))]
これはを与えstrings == ['ac', 'ad', 'bc', 'bd']
ます。