117.info
人生若只如初见

python笛卡尔积算法怎么实现

Python中可以通过使用嵌套循环或使用itertools.product()函数来实现笛卡尔积算法。

方法一:使用嵌套循环

def cartesian_product(lists):
    result = [[]]
    for lst in lists:
        result = [x+[y] for x in result for y in lst]
    return result

lists = [[1, 2, 3], ['a', 'b', 'c'], ['x', 'y']]
result = cartesian_product(lists)
print(result)

输出结果:

[[1, 'a', 'x'], [1, 'a', 'y'], [1, 'b', 'x'], [1, 'b', 'y'], [1, 'c', 'x'], [1, 'c', 'y'], [2, 'a', 'x'], [2, 'a', 'y'], [2, 'b', 'x'], [2, 'b', 'y'], [2, 'c', 'x'], [2, 'c', 'y'], [3, 'a', 'x'], [3, 'a', 'y'], [3, 'b', 'x'], [3, 'b', 'y'], [3, 'c', 'x'], [3, 'c', 'y']]

方法二:使用itertools.product()函数

import itertools

lists = [[1, 2, 3], ['a', 'b', 'c'], ['x', 'y']]
result = list(itertools.product(*lists))
print(result)

输出结果与方法一相同:

[(1, 'a', 'x'), (1, 'a', 'y'), (1, 'b', 'x'), (1, 'b', 'y'), (1, 'c', 'x'), (1, 'c', 'y'), (2, 'a', 'x'), (2, 'a', 'y'), (2, 'b', 'x'), (2, 'b', 'y'), (2, 'c', 'x'), (2, 'c', 'y'), (3, 'a', 'x'), (3, 'a', 'y'), (3, 'b', 'x'), (3, 'b', 'y'), (3, 'c', 'x'), (3, 'c', 'y')]

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe0d5AzsLAgZeDFM.html

推荐文章

  • python怎么打印int型数据

    在Python中,可以使用print()函数将int型数据打印出来。例如:
    num = 10
    print(num) 输出结果为:
    10 可以将多个int型数据一起打印,用逗号分隔开...

  • python创建列表怎么添加元素

    在Python中,可以通过使用append()方法来给列表添加元素。例如:
    my_list = []
    my_list.append(1)
    my_list.append(2)
    my_list.append(3)

  • python中print如何输出变量

    在Python中,可以使用print语句来输出变量的值。可以将变量放在print语句的括号中,例如:
    x = 10
    print(x) # 输出变量x的值 也可以使用字符串格式化来...

  • python列表怎么添加多个元素

    在Python中,可以使用extend()方法来添加多个元素到列表中。extend()方法接受一个可迭代对象作为参数,将可迭代对象中的元素逐个添加到列表中。
    以下是一个...

  • java两个list取交集怎么实现

    可以使用Java 8的Stream API来实现两个List的交集。
    假设有两个List list1和List list2,可以使用以下代码来取得两个List的交集:
    import java.util.A...

  • java中参数传递的方式有哪些

    在Java中,参数传递的方式有以下几种: 值传递(Pass by Value):基本数据类型的参数传递方式是值传递。方法接收到的是实际参数的拷贝,对拷贝的修改不会影响到...

  • jmeter怎么引用java文件

    要在JMeter中引用Java文件,可以按照以下步骤进行操作: 在JMeter的安装目录下的"lib"文件夹内,将Java文件的编译后的class文件或jar文件拷贝进去。 重启JMeter,...

  • vhdl中entity的用法是什么

    在VHDL(VHSIC Hardware Description Language)中,entity用于定义一个硬件电路的接口和输入输出信号。entity描述了一个虚拟的硬件模块的外部特征,类似于C语言...