对于n长度的数值列表,例如[1, 3, 1, 2, ...]
,我想创建一个列表,列出range[x+1]
中所有可能的值组合,其中x是列表中的值。输出可能如下所示:
for list[1, 3, 2] return all possible lists of range[x+1] values:
# the sequence of the list is unimportant
[
[0,0,0],[1,0,0],[0,1,0],[0,2,0],[0,3,0],[0,0,1],[0,0,2],[1,1,0],
[1,2,0],[1,3,0],[1,0,1],[1,0,2],[0,1,1],[0,2,1],[0,3,1],[0,1,2],
[0,2,2],[0,3,2],[1,1,1],[1,2,1],[1,3,1],[1,1,2],[1,2,2],[1,3,2]
]
所以在这个例子中,我寻找[e1, e2, e3]
的所有变体e1 in [0,1], e2 in [0,1,2,3] and e3 in [0,1,2]
将
itertools.product
与动态指定的迭代器列表一起使用:输出:
^{pr2}$要获得问题中显示的确切顺序(尽管顺序不同,但这不是问题),请使用此函数:
结果如预期:
^{pr2}$Python的itertools模块有一个工具,可以满足您的需要:
编辑:由于您的需求相当具体,因此您可以使用自己的函数来完成类似的任务:(请注意,我还没有完成实现,可能有人会改进它):
^{pr2}$编辑:我第一次误解了你的问题,所以我要为此道歉。不过,我还是不要管这个。在
相关问题 更多 >
编程相关推荐