Vermeiden wiederholter Funktionsaufrufe in der Syntax des Listenverständnisses
Ich habe ein Listenverständnis, das sich annähert an:
[f(x) for x in l if f(x)]
Dabei ist l eine Liste und f (x) eine teure Funktion, die eine Liste zurückgibt.
Ich möchte vermeiden, f (x) zweimal für jedes nicht leere Vorkommen von f (x) zu bewerten. Gibt es eine Möglichkeit, die Ausgabe innerhalb des Listenverständnisses zu speichern?
Ich könnte die endgültige Bedingung entfernen, die gesamte Liste generieren und sie dann beschneiden, aber das scheint verschwenderisch.