itertools 中可迭代列表的列表
List of lists to iterables in itertools
我想使用 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 的可迭代对象。
奖励积分。
实际上我所拥有的不是一个列表列表,而是一个字典,其中的值是列表。因此,如果我可以避免将其转换为列表的列表,那就更好了。
我想这就是你想要的:
import itertools
lists = [[1, 3, 4], [2, 3, 6], [9, 4]]
for i in itertools.product(*lists):
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)
我想使用 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 的可迭代对象。
奖励积分。 实际上我所拥有的不是一个列表列表,而是一个字典,其中的值是列表。因此,如果我可以避免将其转换为列表的列表,那就更好了。
我想这就是你想要的:
import itertools
lists = [[1, 3, 4], [2, 3, 6], [9, 4]]
for i in itertools.product(*lists):
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)