我试图解决中提到的问题这篇文章。考虑D=[d1,...,dm]一个非负整数列表。我想要一套的笛卡尔积range(d1),...,range(dm)。例如,如果m=3我可以使用itertools:
D=[d1,...,dm]
range(d1),...,range(dm)
m=3
indices=[i for i in itertools.product(range(d1),range(d2),range(d3))]
如果您能帮助我知道如何生成任意长度的indicesusing D,我将不胜感激。
indices
D
您可以使用map映射的所有项目D来range,然后解开他们product:
map
range
product
indices=list(itertools.product(*map(range, D)))