【发布时间】:2021-11-09 16:09:57
【问题描述】:
我想使用itertools.product。
文档指定itertools.product(*iterables, repeat=1)。
比如这个
for i in itertools.product([1,3,4],[2,3,6],[9,4]):
print(i)
输出
(1, 2, 9)
(1, 2, 4)
(1, 3, 9)
(1, 3, 4)
(1, 6, 9)
(1, 6, 4)
(3, 2, 9)
(3, 2, 4)
(3, 3, 9)
(3, 3, 4)
(3, 6, 9)
(3, 6, 4)
(4, 2, 9)
(4, 2, 4)
(4, 3, 9)
(4, 3, 4)
(4, 6, 9)
(4, 6, 4)
我的问题是我没有固定数量的此类列表,而是一个变量作为列表列表(例如[[1,3,4],[2,3,6],[9,4]])。
我想将此列表转换为可传递给 itertools.product 的可迭代对象。
奖励积分。 实际上,我所拥有的不是列表列表,而是一个字典,其中值是列表。因此,如果我可以避免将其转换为列表列表,那就更好了。
【问题讨论】:
-
这应该在本网站上全面介绍。如果您搜索,有很多使用 itertools 中的排列和组合来解决此问题的示例。
标签: python itertools combinatorics