簡體   English   中英

使用itertools生成列表列表的笛卡爾積

[英]using itertools to generate the Cartesian product of list of lists

我試圖解決中提到的問題這篇文章 考慮D=[d1,...,dm]非負整數的列表。 我想要一組range(d1),...,range(dm)的笛卡爾積。 例如,如果m=3我可以使用itertools:

 indices=[i for i in itertools.product(range(d1),range(d2),range(d3))]

如果您能幫助我知道如何使用任意長度的D生成indices將不勝感激。

您可以使用mapD所有項目映射到range ,然后將它們解壓為product

indices=list(itertools.product(*map(range, D)))

您可以使用*

[i for i in itertools.product(*map(range, D))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM