当前位置: 首页 > 图灵资讯 > 行业资讯> Python如何从列表中获取笛卡尔积

Python如何从列表中获取笛卡尔积

来源:图灵python
时间: 2024-06-28 21:38:22

1、itertols可以使用.在标准库中使用product获取笛卡尔积。

fromitertoolsimportproduct

somelists=[
[1,2,3],
['a','b'],
[4,5]
]

result=list(product(*somelists))
print(result)

2、迭代方法。

defcartesian_iterative(pools):
result=[[]]
forpoolinpools:
result=[x+[y]forxinresultforyinpool]
returnresult

3、递归方法。

defcartesian_recursive(pools):
iflen(pools)>2:
pools[0]=product(pools[0],pools[1])
delpools[1]
returncartesian_recursive(pools)
else:
pools[0]=product(pools[0],pools[1])
delpools[1]
returnpools
defproduct(x,y):
return[xx+[yy]ifisinstance(xx,list)else[xx]+[yy]forxxinxforyyiny]

4、Lambda方法。

defcartesian_reduct(pools):
returnreduce(lambdax,y:product(x,y),pools)

以上是Python从列表中获取笛卡尔积的方法,希望对大家有所帮助。更多多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。