2016-08-16 48 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 

輸出:

(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) 

與重複= 6您設置的大型陣列的出得到在k中組合數組存儲,在k中可以放置任何值,然後intertools嘗試命令並組合

+0

沒問題的人!不錯的編碼! – manhattan