Python返回序列组合列表的列表

时间:2017-10-19 07:45:57

标签: python-3.x list combinations

我在Python中有以下列表,其中包含0。

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]]

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用itertools包,其中包含product功能

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

请参阅https://docs.python.org/3/library/itertools.html#itertools.product

编辑:请注意,正确使用此软件包中的某些函数可以在不进行for循环的情况下为您提供预期的输出。正如其他人所说,很难知道你想要什么完全

答案 1 :(得分: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]]

答案 2 :(得分:0)

不导入包的三位组合:

if defined

对于4位宽,将“03b”更改为“04b”并将范围更改为(0,2 ** 4)