2017-07-21 13 views
0

私はPythonの問題でブロックされており、誰かが私を助けてくれることを願っています。リストのすべての組み合わせを計算する方法

実際に問題はプレティシンプルです。

すべての組み合わせが可能なリストを作成しようとしていますが、リストの要素の範囲が同じではありません。

ここは私のコードですが、私はforループで何かをしようとしましたが、それは動作しません。

for j in range(0,size): 


    for k, val in enumerate(self.Algo.Inputs[j].Values): 
     self.Commandlist[j] = k 

self.Commandlistは、修正範囲のリストで、最初はゼロで塗りつぶします。

self.Commandlist = [0,0,0]

self.Algo.Inputs [J] .Values self.Algo.Inputs [0]の場合、例えば、私の各要素の大きさを与えます。値= 4 self.Algo.Inputs [1] .Values = 1 self.Algo.Inputs [2] .Values =私はすべての組合せを望む2

、[0,0,0]、[1、 0,0]、[2,0,0]、[3,0,0]、[4,0,0]、[0,1,0]、[1,1,0]、[2,1、 0]、[3,1,0]、[4,1,0]など。

私はループを忘れてしまったと思います。私もitertoolsモジュールでいくつかのものを試しましたが、私はそれを動作させることはできません。

あなたの助けになります。

import itertools 
a = b = c = range(3) # you can specify different range for each one 
[list(x) for x in list(itertools.product(a, b, c))] 

結果:

[[0、0、0]、[0、0、1]、[0、0

+0

期待される出力は、範囲(x)のすべての可能な組み合わせを必要とします。例えば、0,1、... x-1; 1,0,2、...、x-1;等? – depperm

+2

'itertools'モジュールを使いたいかもしれません。 –

答えて

1

としては、あなたがそのように、たとえば、itertoolsを使用することができます言及しました2]、[0,1,0]、[0,1,1]、[0,1,2]、[0,2,0]、[0,2,1]、[0,2,2 ]、[1,0,0]、[1,0,1]、[1,0,2]、[1,1,0]、[1,1,1]、[1,1,2]、 [1,2,0]、[1,2,1]、[1,2,2]、[2,0,0]、[2,0,1]、[2,0,2]、[2 [2,2,1]、[2,2,2]、[2,2,2]、[2,2,2]

+0

ありがとう、これは私が必要とするものです。一方、要素の数とその範囲は変数です。それは私が推測するループで行うことが可能ですか? – PythonItsLife

関連する問題