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迭代器转换为列表
返回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)]
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP