导语:
本文主要介绍了关于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如何遍历一个集合11/07
- ♥ 如何在python中使用阶乘12/08
- ♥ 如何在python中安装图形库12/08
- ♥ python输入函数是什么10/23
- ♥ Python中处理属性的重要属性和函数有哪些12/28
- ♥ python查询键值对是否在字典中的三种方法08/19
内容反馈