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基础教程