2016-03-31 5 views
-2

を使用して、リストの要素を組み合わせることができ、私ははどのように私はPythonの3

l = [["a", "b", "c"], ["1", "2", "3"], ["x", "y", "z"]] 

は、どのように私はすべての要素の組み合わせのリストを取得することができていますか?

combine(l) 

は、あなたが望む組み合わせのこの種はitertools.product関数としてPythonで提供されています

["a1x", "a2x", "a3x", "b1x", "b2x", "b3x", "c1x", "c2x", "c3x", 
"a1y", "a2y", "a3y", "b1y", "b2y", "b3y", "c1y", "c2y", "c3y", 
"a1z", "a2z", "a3z", "b1z", "b2z", "b3z", "c1z", "c2z", "c3z"] 
+0

:中

import itertools l = [["a", "b", "c"], ["1", "2", "3"], ["x", "y", "z"]] combined = ["".join(combination) for combination in itertools.product(*l)] print(combined) 

結果:あなたは、ポストプロセスをするために戻って文字列として、各タプルに参加するには、その出力 を持っています。 'a1'、' b1'、 'c1'という名前がバインドされていると仮定すると、' a1b1c1'とは何ですか? – timgeb

+0

@timgebそれらは文字列です –

+0

''c1a2b2''または''b1c1a2''が結果に含まれないのはなぜですか? – styvane

答えて

1

を返す必要があります。無効な構文です

['a1x', 'a1y', 'a1z', 'a2x', 'a2y', 'a2z', 'a3x', 'a3y', 'a3z', 'b1x', 'b1y', 'b1z', 'b2x', 'b2y', 'b2z', 'b3x', 'b3y', 'b3z', 'c1x', 'c1y', 'c1z', 'c2x', 'c2y', 'c2z', 'c3x', 'c3y', 'c3z']