2016-09-15 3 views
0

Iは、コードのこの部分を有する所定数の連結:パイソン:ループ

N = 4 
coa = [] 
for a in range(N): 
    for b in range(N): 
     for c in range(N): 
      for d in range (N): 
       coa.append(a,b,c,d) 

は、基本的に、私は、forループ数N限り多くを連結する必要があります。したがって、N6に等しければ、私はefの文字を持つ他の2つのfor-loopを追加し、coa.append()の中に同じ文字を追加しなければならなかったでしょう。それを自動的に行う可能性はありますか?それは、Nの整数値を変更することによって、それを入力せずに済むことを意味しますか?

+0

使用は – jonrsharpe

答えて

1

あなたがitertools.productrepeat()を使用することができます。ここでは

は一例です: `

In [3]: from itertools import product, repeat 

In [5]: 

In [5]: list(product(*repeat(range(3), 3))) 
Out[5]: 
[(0, 0, 0), 
(0, 0, 1), 
(0, 0, 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, 1, 0), 
(2, 1, 1), 
(2, 1, 2), 
(2, 2, 0), 
(2, 2, 1), 
(2, 2, 2)] 
+1

おかげで多くのことをitertools.product'。申し訳ありませんが、もし私の質問が先例の二重であれば。とにかく、私は前の答えを理解することができませんでしたが、これは完璧です! – Marco