我正在尝试解决this post中提到的问题。考虑D=[d1,...,dm]
的非负整数列表。我想要一组range(d1),...,range(dm)
的笛卡尔积。例如,如果m=3
我可以使用itertools:
indices=[i for i in itertools.product(range(d1),range(d2),range(d3))]
如果您能帮助我知道如何使用indices
以任意长度生成D
,我们将不胜感激。
答案 0 :(得分:4)
您可以使用map
将D
的所有项目映射到range
,然后为product
拆包:
indices=list(itertools.product(*map(range, D)))
答案 1 :(得分:2)
您可以使用*
:
[i for i in itertools.product(*map(range, D))]