mapとitertoolsを使用して外部製品の結果をファイルに出力しようとしていますが、なぜこのエラーがインデックスエラーを引き起こすのか理解しがたいです。文字列の整形itertools出力 - タプルの範囲外エラー
import itertools
a = [1,2,3]
b = [4,5,6]
with open('job.list', 'w') as l:
map(lambda x: l.write("{0} {1}\n".format(x)), itertools.product(a, b))
map(lambda x: l.write("{0} {1}\n".format(x[0], x[1])), itertools.product(a, b))
にマップを変更するには、エラーを削除しますが、これは明らかに不完全です。
このエラーはitertools.productがリストではなくイテレータを返すことと関係があると思います。しかし、試行してください
代わりにインデックスエラーが発生します。
ここに私の理解に間隙があることは明らかですが、私はそれが何であるかを知るために何か助けてもらえます。
'map'と' lambda'でこれを行う理由はありますか?より読みやすい 'for'ループでこれを行うことができるようです。 – roganjosh
'map(lambda x:l.write(" {0} {1} \ n ".format(* x))、itertools.product(a、b))'あなたは何をしますか? – roganjosh
HPCに行く特定のジョブのために、かなり動かすことができる入力ジェネレータスクリプトです。私は一度実行します。学習の練習として、マップとラムダを使ってできるだけ簡潔に書くようにしました。これが他の誰かに行くことになった場合や、この1つ以上の実行に使用された場合は、より読みやすいソリューションを使用することに同意します。いずれにせよ、私は私の誤りを理解したいと思います。 – JFurness