以下は、私のコードの簡単な例です。forループの代わりに補題を使用する
>>> def action(num):
print "Number is", num
>>> items = [1, 3, 6]
>>> for i in [j for j in items if j > 4]:
action(i)
Number is 6
私の質問は以下の通りです:は、単にまだaction
関数を呼び出します理解してfor
ループを交換する(このようなコードの明確さなどの理由で)悪い習慣ですか?つまり:
>>> (action(j) for j in items if j > 2)
Number is 6
アクションは何も返されないので、最初はリストとそれ以上のループを作成していないので、実際にはもっと素敵で速いですリストコンプのために '[]'を使います。 –
これは実際にあなたがそこに持っているジェネリックステートメントであり、リストの解説ではありません。私はそれがあなたの質問に重大な影響を与えるかどうかはわかりません。 – Tagc
@Tagcジェネレータを作成することは分かっていますが、それをジェネレータの理解と呼んでいるかどうかは分かりませんでしたが、リストの理解のために同じ考えをしています。何らかの理由で他よりも優先されるのでしょうか? – Siwel