7

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

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

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

4

1 回答 1

10

使用itertools.product()

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

现在哪里product是可迭代的;list(product)如果您想将其具体化为完整列表,请致电:

>>> 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)]
于 2013-01-30T23:12:31.027 回答