查找两个列表的笛卡尔积的Python程序
假设我们有两个数据列表l1和l2。我们必须找到这两个列表的笛卡尔积。我们知道如果两个列表像(a,b)和(c,d)那么笛卡尔积将是{(a,c),(a,d),(b,c),(b,d)}.为此,我们将使用itertools库并使用product()该库中存在的函数。这个函数的返回值是一个迭代器。我们必须通过将输出传递给list()构造函数来将其转换为列表。
所以,如果输入像l1=[1,5,6]l2=[1,2,9],那么输出将是[(1,1),(1,2),(1,9),(5,1),(5,2),(5,9),(6,1),(6,2),(6,9)]
示例
让我们看下面的实现来更好地理解
from itertools import product def solve(l1, l2): return list(product(l1, l2)) l1 = [1,5,6] l2 = [1,2,9] print(solve(l1, l2))
输入
[1,5,6], [1,2,9]输出结果
[(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]