Python 创建组合列表
我想创建一个有三个值的数字列表,并希望涵盖从0到3的每个组合。例如:Python 创建组合列表,python,list,combinations,Python,List,Combinations,我想创建一个有三个值的数字列表,并希望涵盖从0到3的每个组合。例如: 0, 0, 0 0, 0, 1 ... 1, 0, 3 1, 1, 3 一直到3,3,3 有比使用多个for循环更好的方法吗 以下是我使用的代码: for i in range (0, 4): for x in range (0, 4): for t in range (0, 4): assign = [i, x, t] 通常: 列表(itertools.product(范围(4),
0, 0, 0
0, 0, 1
...
1, 0, 3
1, 1, 3
一直到3,3,3
有比使用多个for循环更好的方法吗
以下是我使用的代码:
for i in range (0, 4):
for x in range (0, 4):
for t in range (0, 4):
assign = [i, x, t]
通常:
列表(itertools.product(范围(4),重复=3))
您可以使用:
您可以使用
itertools.product()
函数:
from itertools import product
for i, x, t in product(range(4), repeat=3):
print (i, x, t)
演示:
itertools.product()
是一个很好的解决方案,但是如果您碰巧想要一个列表列表而不是元组列表,您可以使用以下方法:
[ [x,y,z] for x,y,z in itertools.product(range(4), repeat=3)]
或等效列表:
[ [x,y,z] for x in range(0,4)
for y in range(0,4)
for z in range(0,4)]
[ [x,y,z] for x,y,z in itertools.product(range(4), repeat=3)]
[ [x,y,z] for x in range(0,4)
for y in range(0,4)
for z in range(0,4)]