导语:
本文主要介绍了关于Python如何从列表中获取笛卡尔积的相关知识,包括sql中的笛卡尔积,以及假定一个笛卡尔积中有m个元组这些编程知识,希望对大家有参考作用。
1、可以使用itertools.product在标准库中使用以获取笛卡尔积。
from itertools import product
somelists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
result = list(product(*somelists))
print(result)
2、迭代方法。
def cartesian_iterative(pools):
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
return result
3、递归方法。
def cartesian_recursive(pools):
if len(pools) > 2:
pools[0] = product(pools[0], pools[1])
del pools[1]
return cartesian_recursive(pools)
else:
pools[0] = product(pools[0], pools[1])
del pools[1]
return pools
def product(x, y):
return [xx + [yy] if isinstance(xx, list) else [xx] + [yy] for xx in x for yy in y]
4、Lambda方法。
def cartesian_reduct(pools):
return reduce(lambda x,y: product(x,y) , pools)
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中获取时间格式12/21
- ♥ 如何使用python运行文件09/30
- ♥ Python如何生成线程11/17
- ♥ 求求你,别用 print 来 debug 了01/31
- ♥ Python3编码如何实现相互转换?11/28
- ♥ 什么是python数据离散化12/14
内容反馈