Ok。Python:範囲内の値のn長配列の組み合わせを生成する
[0,0,0]
[0,0,1]
[0,0,2]
...
[1,0,0]
[1,0,1]
...
など:私はこのような値、B、Cのためのすべての組み合わせを生成する必要がありますされ、この関数に
def f():
[[a,b,c] for a in range(6) for b in range(6) for c in range(6)]
を行うには賢い、よりコンパクトな方法を探しています。 ..
しかし、私はこれを柔軟にしたいので、範囲や反復可能性、そして生成された配列の長さを変更できます。範囲は簡単なことである:
def f(min, max):
[[a,b,c] for a in range(min,max) for b in range(min,max) for c in range(min,max)]
これは3長配列のためにOKですが、私は4長配列または7長配列を作ることを今考えと同じ範囲内のそれらのためのすべての組み合わせを生成しています。
配列を連結したり、何らかの形で入れ子リストを入れたりするのは簡単な方法ですが、私のソリューションは複雑すぎるようです。
このような長い投稿には申し訳ありません。
'itertools'モジュールは、正確に何をして' product'機能を持っています探しています。 'itertoolsからインポート製品。製品(範囲(6)、範囲(6)、範囲(6)) 'を含む。どのイテレーターが最後に置かれても、最も早くサイクルします。 – Elliot