知行编程网知行编程网  2022-12-23 08:30 知行编程网 隐藏边栏  8 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python如何从列表中获取笛卡尔积的相关知识,包括sql中的笛卡尔积,以及假定一个笛卡尔积中有m个元组这些编程知识,希望对大家有参考作用。

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


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电脑。


本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享