戻り値ではなく副作用のために呼び出す関数について考えます (画面への印刷、GUI の更新、ファイルへの印刷など)。
def fun_with_side_effects(x):
...side effects...
return y
さて、それはPythonicリスト内包表記を使用してこの関数を呼び出すには:
[fun_with_side_effects(x) for x in y if (...conditions...)]
リストはどこにも保存しないことに注意してください
または、この関数を次のように呼び出す必要があります。
for x in y:
if (...conditions...):
fun_with_side_effects(x)
どちらが良いですか、またその理由は何ですか?
ベストアンサー1
これは Python に反する行為であり、熟練した Pythonista なら誰でもこれを非難するでしょう。中間リストは作成後に破棄されるため、非常に大きくなる可能性があり、そのため作成コストが高くなります。