您现在的位置是:课程教程文章

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

2023-12-13 23:46课程教程文章 人已围观

1、可以使用itertools.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电脑。

课程教程:Python如何从列表中获取笛卡尔积

上一篇:python如何检测pygame中的碰撞

下一篇:没有了

站点信息

  • 文章统计篇文章