📜  Python|构造笛卡尔积元组列表(1)

📅  最后修改于: 2023-12-03 15:04:26.231000             🧑  作者: Mango

Python | 构造笛卡尔积元组列表

在Python中,我们可以使用嵌套循环的方式来实现构造所有可能的元组列表,即笛卡尔积。

代码如下:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False]

cartesian_product = [(a, b, c) for a in list1 for b in list2 for c in list3]

print(cartesian_product)

输出结果如下:

[(1, 'a', True), (1, 'a', False), (1, 'b', True), (1, 'b', False), (1, 'c', True), (1, 'c', False), (2, 'a', True), (2, 'a', False), (2, 'b', True), (2, 'b', False), (2, 'c', True), (2, 'c', False), (3, 'a', True), (3, 'a', False), (3, 'b', True), (3, 'b', False), (3, 'c', True), (3, 'c', False)]

上面的代码中,我们定义了三个列表list1,list2和list3,然后使用嵌套的for循环遍历这三个列表,生成所有可能的元组列表,即笛卡尔积。最后,将所有的元组放在一个列表cartesian_product中输出。

值得一提的是,Python中还有一个库itertools,它提供了一个函数product,可以更方便地实现笛卡尔积的构造。代码如下:

import itertools

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False]

cartesian_product = list(itertools.product(list1, list2, list3))

print(cartesian_product)

输出结果与上述方式相同。

总体来说,Python提供了多种实现笛卡尔积的方式,我们可以采用适合自己的方式实现。