Pomyśl o funkcji, którą wywołuję ze względu na jej skutki uboczne, a nie zwracanie wartości (jak drukowanie na ekranie, aktualizacja GUI, drukowanie do pliku itp.).
def fun_with_side_effects(x):
...side effects...
return y
Teraz, czy Pythonic ma używać wyrażeń listowych do wywoływania tej funkcji:
[fun_with_side_effects(x) for x in y if (...conditions...)]
Zauważ, że nigdzie nie zapisuję listy
A może powinienem nazwać tę funkcję w ten sposób:
for x in y:
if (...conditions...):
fun_with_side_effects(x)
Który jest lepszy i dlaczego?
for ... in
on używany w obu przypadkach - co prowadzi do pytań takich jak to!