2016-08-16 7 views
0

可能なすべての列挙結果を取得したいと思います。各インデックスには0または1の値が入ります。リストの各インデックスの0,1要素を列挙します。

以下は私のコードとその結果です。 コードを改善するにはどうすればよいですか?私はあまりにも多くのforループを避けたいです。

k=[0,0,0,0,0,0] 
list_dic={} 
for a in range(2): 
    k[0]=a 
    for b in range(2): 
     k[1]=b 
     for c in range(2): 
      k[2]=c 
      for d in range(2): 
       k[3]=d 
       for e in range(2): 
        k[4]=e 
        for f in range(2): 
         k[5]=f 
         list_dic[tuple(k)]=0 

enum_list=list((list_dic.keys())) 
print(enum_list) 

enter image description here

答えて

1

はたぶん、あなたはintertoolsで試してみたい:

import itertools 
k = [0,1] 

ret = itertools.product(k, repeat = 6) 

for i in ret: 
    print i 

出力:繰り返し= 6と

(0, 0, 0, 0, 0, 0) 
(0, 0, 0, 0, 0, 1) 
(0, 0, 0, 0, 1, 0) 
(...many arrays..) 
(1, 1, 1, 1, 0, 1) 
(1, 1, 1, 1, 1, 0) 
(1, 1, 1, 1, 1, 1) 

あなたが外で取得配列の大規模なセットkのコンビネーション配列ストア、kで任意の値を入れることができ、intertoolsは注文して結合しようとします

+0

問題のない男性です!素敵なコーディング! – manhattan

関連する問題