python:计算列表笛卡尔幂的最短方法

Python: shortest way to compute cartesian power of list

本问题已经有最佳答案,请猛点这里访问。

假设我们有一个清单L。笛卡尔积L x L可以这样计算:

1
product = [(a,b) for a in L for b in L]

笛卡尔乘方L x L x L x ... x L(n次,对于给定的n)如何以一种短而有效的方式计算?


使用itertools.product()

1
product = itertools.product(L, repeat=n)

如果product现在是一个不可更改的;如果您想将其具体化为完整的列表,请致电list(product)

1
2
3
>>> from itertools import product
>>> list(product(range(3), repeat=2))
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]