如何在python中获取所有列表元素的组合?[重复]

问题描述 投票:2回答:1

假设在python中我们有n个列表,如 A1,A2,...,An. 我们命名 A*={x1,x2,...,xn} 这些清单的组合,如果 x1 是在 A1, x2 is in A2,..., xn 是在 An. 通过数学,我们知道这些组合的数量是: 。|A1| * |A2|*... * |An|. 我如何在python中编写一个函数来完成这个任务并返回所有这些组合?

python
1个回答
1
投票

你可以使用 itertools.product:

from itertools import product

a1 = range(0, 3)
a2 = range(3, 6)
a3 = range(6, 9)

print(list(product(a1, a2, a3)))

产出:

[(0, 3, 6), (0, 3, 7), (0, 3, 8), (0, 4, 6), (0, 4, 7), (0, 4, 8), (0, 5, 6), (0, 5, 7), (0, 5, 8), (1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 4, 6), (1, 4, 7), (1, 4, 8), (1, 5, 6), (1, 5, 7), (1, 5, 8), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 4, 6), (2, 4, 7), (2, 4, 8), (2, 5, 6), (2, 5, 7), (2, 5, 8)]
© www.soinside.com 2019 - 2024. All rights reserved.