提问人:Rohan Mathur 提问时间:4/9/2022 更新时间:4/9/2022 访问量:38
嵌套循环 Python 列表
Nested looping a Python list
问:
我有一个长度为 6 的列表,L[5] = 3 是固定的。我需要循环 243 次(或其他东西)才能按特定顺序获得组合。
L[4] 将继续 1,2,3 和 L[3] 在这段时间内保持不变,然后从右向左移动。我知道这将是一些嵌套循环,但无法正确完成。该列表可以初始化为任何内容,但 L[5] 需要为 3,第一个组合为 L = [1,1,1,1,1,3],最后一个组合为 [3,3,3,3,3,3]
答:
2赞
Andrej Kesely
4/9/2022
#1
IIUC 你可以使用 itertools.product
:
from itertools import product
vals = [[1, 2, 3]] * 5 + [[3]]
for c in product(*vals):
print(c)
指纹:
(1, 1, 1, 1, 1, 3)
(1, 1, 1, 1, 2, 3)
(1, 1, 1, 1, 3, 3)
(1, 1, 1, 2, 1, 3)
(1, 1, 1, 2, 2, 3)
(1, 1, 1, 2, 3, 3)
(1, 1, 1, 3, 1, 3)
(1, 1, 1, 3, 2, 3)
(1, 1, 1, 3, 3, 3)
(1, 1, 2, 1, 1, 3)
...
(3, 3, 3, 3, 1, 3)
(3, 3, 3, 3, 2, 3)
(3, 3, 3, 3, 3, 3)
1赞
Jhanzaib Humayun
4/9/2022
#2
像这样的东西应该可以工作:
list = []
for i in range(1,4):
for j in range(1,4):
for k in range(1,4):
for l in range(1,4):
for m in range(3,4):
list.append([i,j,k,l,m])
for elem in list:
print(elem)
输出:
[1, 1, 1, 1, 3]
[1, 1, 1, 2, 3]
[1, 1, 1, 3, 3]
[1, 1, 2, 1, 3]
[1, 1, 2, 2, 3]
[1, 1, 2, 3, 3]
[1, 1, 3, 1, 3]
[1, 1, 3, 2, 3]
[1, 1, 3, 3, 3]
[1, 2, 1, 1, 3]
[1, 2, 1, 2, 3]
[1, 2, 1, 3, 3]
[1, 2, 2, 1, 3]
[1, 2, 2, 2, 3]
[1, 2, 2, 3, 3]
[1, 2, 3, 1, 3]
[1, 2, 3, 2, 3]
[1, 2, 3, 3, 3]
[1, 3, 1, 1, 3]
[1, 3, 1, 2, 3]
[1, 3, 1, 3, 3]
[1, 3, 2, 1, 3]
[1, 3, 2, 2, 3]
[1, 3, 2, 3, 3]
[1, 3, 3, 1, 3]
[1, 3, 3, 2, 3]
[1, 3, 3, 3, 3]
[2, 1, 1, 1, 3]
[2, 1, 1, 2, 3]
[2, 1, 1, 3, 3]
[2, 1, 2, 1, 3]
[2, 1, 2, 2, 3]
[2, 1, 2, 3, 3]
[2, 1, 3, 1, 3]
[2, 1, 3, 2, 3]
[2, 1, 3, 3, 3]
[2, 2, 1, 1, 3]
[2, 2, 1, 2, 3]
[2, 2, 1, 3, 3]
[2, 2, 2, 1, 3]
[2, 2, 2, 2, 3]
[2, 2, 2, 3, 3]
[2, 2, 3, 1, 3]
[2, 2, 3, 2, 3]
[2, 2, 3, 3, 3]
[2, 3, 1, 1, 3]
[2, 3, 1, 2, 3]
[2, 3, 1, 3, 3]
[2, 3, 2, 1, 3]
[2, 3, 2, 2, 3]
[2, 3, 2, 3, 3]
[2, 3, 3, 1, 3]
[2, 3, 3, 2, 3]
[2, 3, 3, 3, 3]
[3, 1, 1, 1, 3]
[3, 1, 1, 2, 3]
[3, 1, 1, 3, 3]
[3, 1, 2, 1, 3]
[3, 1, 2, 2, 3]
[3, 1, 2, 3, 3]
[3, 1, 3, 1, 3]
[3, 1, 3, 2, 3]
[3, 1, 3, 3, 3]
[3, 2, 1, 1, 3]
[3, 2, 1, 2, 3]
[3, 2, 1, 3, 3]
[3, 2, 2, 1, 3]
[3, 2, 2, 2, 3]
[3, 2, 2, 3, 3]
[3, 2, 3, 1, 3]
[3, 2, 3, 2, 3]
[3, 2, 3, 3, 3]
[3, 3, 1, 1, 3]
[3, 3, 1, 2, 3]
[3, 3, 1, 3, 3]
[3, 3, 2, 1, 3]
[3, 3, 2, 2, 3]
[3, 3, 2, 3, 3]
[3, 3, 3, 1, 3]
[3, 3, 3, 2, 3]
[3, 3, 3, 3, 3]
评论
1赞
Rohan Mathur
4/9/2022
谢谢,我又加了一个巢,但明白了这个概念。
评论