Python 生成置换
我需要生成一个可变长度列表,列出n长度元组的所有可能值,每个值为0或1。因此有2^n个可能的元组。例如,对于n=3的输入,我的列表应该如下Python 生成置换,python,Python,我需要生成一个可变长度列表,列出n长度元组的所有可能值,每个值为0或1。因此有2^n个可能的元组。例如,对于n=3的输入,我的列表应该如下 a=[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)] 注意:内部元素是否为元组并不重要,如果方便,请使用列表。如果最终列表没有按照我的示例进行排序,这也没有多大关系。我目前可以使用for循环来实现,但我想知道是否有更好的pyth
a=[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0),
(1, 1, 1)]
注意:内部元素是否为元组并不重要,如果方便,请使用列表。如果最终列表没有按照我的示例进行排序,这也没有多大关系。我目前可以使用for循环来实现,但我想知道是否有更好的pythony方法来实现这一点。这是我写的代码
>>>>newlist=[]
>>>>for i in range(2**n):
s=bin(i)[2:] #spliced to remove the leading '0b' in the string
s='0'*(n-len(s))+s #adding extra zeroes to beginning of string
buffer=tuple(int(i) for i in s)
newlist.append(buffer)
这就生成了我想要的列表。有什么建议可以用一种更好的方式来做吗?你可以这样使用
from itertools import product
print list(product(range(2), repeat = 3))
输出
你可以这样用
from itertools import product
print list(product(range(2), repeat = 3))
输出
从标题上看,itertools是你的朋友。我刚才得到的答案非常清楚地表明:从标题上看,itertools是你的朋友。我刚才得到的答案非常清楚地表明:哇。我甚至不知道这个存在。谢谢。需要阅读有关itertools模块的信息。我会接受这一点,只要它让我:Dwhoa。我甚至不知道这个存在。谢谢。需要阅读有关itertools模块的信息。我会接受这个只要它让我:D