Python 我如何生成这个?
给定一个Python 我如何生成这个?,python,python-3.x,list,Python,Python 3.x,List,给定一个列表,例如[3,2,4],如何生成以下输出 [0, 0, 0] [0, 0, 1] [0, 0, 2] [0, 0, 3] [0, 0, 4] [0, 1, 0] [0, 1, 1] [0, 1, 2] [0, 1, 3] [0, 1, 4] [0, 2, 0] [0, 2, 1] [0, 2, 2] [0, 2, 3] [0, 2, 4] [1, 0, 0] ... [1, 2, 4] ... [3, 2, 4] 我需要生成每个可能的列表,其中列表的每个元素都是正的,并且不大于相关索
列表
,例如[3,2,4]
,如何生成以下输出
[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 0, 3]
[0, 0, 4]
[0, 1, 0]
[0, 1, 1]
[0, 1, 2]
[0, 1, 3]
[0, 1, 4]
[0, 2, 0]
[0, 2, 1]
[0, 2, 2]
[0, 2, 3]
[0, 2, 4]
[1, 0, 0]
...
[1, 2, 4]
...
[3, 2, 4]
我需要生成每个可能的列表,其中列表的每个元素都是正的,并且不大于相关索引中给出的数字
我知道这涉及到循环的
,但我正在寻找最有效的方法(可能使用生成器)来处理不同大小的列表。[[x,y,z]对于范围内的x(3+1)对于范围内的y(2+1)对于范围内的z(4+1)]
就是您要寻找的
编辑:如果输入中的元素数量可变,则不是您的解决方案。可以执行以下操作:
from itertools import product
l = [3,2,4]
print(*product(*[range(i+1) for i in l]), sep='\n')
将打印:
(0, 0, 0)
(0, 0, 1)
(0, 0, 2)
(0, 0, 3)
(0, 0, 4)
(0, 1, 0)
(0, 1, 1)
(0, 1, 2)
(0, 1, 3)
(0, 1, 4)
(0, 2, 0)
(0, 2, 1)
(0, 2, 2)
(0, 2, 3)
(0, 2, 4)
(1, 0, 0)
(1, 0, 1)
(1, 0, 2)
...
(3, 2, 3)
(3, 2, 4)
你的问题不清楚。你能说得更具体些吗?需要做什么?输出背后的逻辑是什么?另外,请添加您的代码,并告诉我们您的代码有什么问题?您需要显示到目前为止您尝试了什么。@Kasramvd我需要生成每个可能的列表,其中列表的每个元素都是正数,并且不大于相关索引中给出的数字。有一些范围!这能概括吗?(因为我的列表中的元素数量可变)