1

リストのリストのデカルト積を作成しようとしています。結果をリストに変換しようとすると、メモリエラーが発生します。リストに変換せずに実行すると、正常に実行されます。

lists = [['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ],['a','b','c' ]]
my_product = list(itertools.product(*lists))

リストに変換する前に itertools.dropwhile を使用して結果の一部をフィルタリングして小さくしようとしたところ、同じ結果が得られました。

filtered = itertools.dropwhile(lambda x: x[1]!=x[2] and x[3]!=x[4] and x[3]!=x[5] and x[4]!=x[5], my_product)
4

1 に答える 1