1

リスト内包表記があるとします

[x,y,z] for x in a for y in a for z in a

これがサイズ 3 で取得した理解であるとします。それに応じて変更できるようにしたいので、2 の場合は x、y のみを持ち、4 の場合は a、b、c、d などを持ちます...

これを行う方法はありますか?

4

1 に答える 1

6

productはい、次の機能を使用できます。

from itertools import product
a = [1,2,3]
print list(product(a))
# gives: [(1,), (2,), (3,)]
print list(product(a, a))
# gives: [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
print list(product(a, a, a))
# gives: [(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)]

repeatまたは、キーワードを使用するとより便利です。

product(a, repeat=3)
于 2012-10-25T22:46:28.147 に答える