2017-10-19 148 views
0

我有以下列表中的Python,其中包括0。Python返回一個列表的組合列表序列

lst = [0,0,0,0,0] 

我想創建一個列表,其中包含1和0的不同組合列表。每個列表將是一個新的和獨特的組合,並且可以在其中找到所有可能的組合。它看起來有點像這樣,如果它只有3項:

lst = [[0,0,0], [0,0,1], [0,1,0], [1,0,0], [0,1,1], [1,1,0], [1,0,1], [1,1,1]] 

謝謝!

+0

你有一個[例如](https://stackoverflow.com/help/mcve)你做了什麼,並解釋什麼是不工作? –

+0

給出一個以[0,0,0]開始並詳細說明每一個輸出的例子,否則沒有人可以知道你想要什麼。 –

回答

1

可以使用itertools包,它包含了product功能

from itertools import product 
list(product([0,1],repeat=5)) 

看到https://docs.python.org/3/library/itertools.html#itertools.product

編輯:注意正確使用的一些功能,從這個包應該給你的預期輸出沒有做循環。正如其他人所說,很難知道你想要什麼剛好。沒有導入包

0

我不確定你想要什麼,但以下看起來像你的需要。

import numpy as np 

lst = [0,0,0,0,0] 

tmp = [] 
for i in range(len(lst)): 
    l = np.copy(lst) 
    l[i] = 1 
    tmp.append(l.tolist()) 
print(tmp) 

[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]] 
0

三位組合:

lst = [] 
z = [lst.append(list(format(i,'03b'))) for i in range(0,2**3)] 
lst 
[['0', '0', '0'], ['0', '0', '1'], ['0', '1', '0'], ['0', '1', '1'], ['1', '0', '0'], ['1', '0', '1'], ['1', '1', '0'], ['1', '1', '1']] 

爲4個位寬,變 '03B' 到 '04B' 和範圍(0,2 ** 4)