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 に答える