Python では、イテラブルに対して、多くの 1 行反復コマンドを作成できます。
このような反復の一部では、if ステートメントが必要です。
if ステートメントと for ステートメントの順序が重要な場合があります。0 から 10 までの奇数の合計を求めたいとします。
>>> sum(i if not i%2==0 for i in range(10))
SyntaxError: invalid syntax
>>> sum(i for i in range(10) if not i%2==0)
25
これらのワンライナーは本質的にあまり理解できませんが、if ステートメントがfor ステートメントの後に来る必要がある理由がよくわかりません。前の を使用する方が常識的ではないでしょうi if not i%2==0 for i in range(10)
か?