リスト内包表記があるとします
[x,y,z] for x in a for y in a for z in a
これがサイズ 3 で取得した理解であるとします。それに応じて変更できるようにしたいので、2 の場合は x、y のみを持ち、4 の場合は a、b、c、d などを持ちます...
これを行う方法はありますか?
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)