Python程序:查找两个列表的笛卡尔积

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)]

要解决这个问题,我们将遵循以下步骤−

  • x := product(l1, l2) 以获取笛卡尔积的迭代器

  • ret := list(x) 将x迭代器转换为列表

  • return ret

示例

让我们看一下以下实现,以更好地理解

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)]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程