Voglio costruire un valore in una lista di comprensione, ma anche filtrare su quel valore. Per esempio:È possibile acquisire il valore restituito da una comprensione elenco Python per utilizzare una condizione?
[expensive_function(x) for x in generator where expensive_function(x) < 5]
voglio evitare di chiamare expensive_function
due volte per ogni iterazione.
Il generator
può restituire una serie infinita e la comprensione delle liste non viene ponderata. Quindi questo non avrebbe funzionato:
[y in [expensive_function(x) for x in generator where expensive_function(x)] where y < 5]
ho potuto scrivere questo in un altro modo, ma ci si sente giusto per una lista di comprensione e sono sicuro che questo è un modello di utilizzo comune (possibile o no!).
Qualcuna delle risposte è degna di essere accettata? In caso contrario, quali informazioni stai ancora cercando? –
Mi dispiace dimenticarmi di segnare questo. La ringrazio per la risposta! – Joe
Nessun problema. Speravo che avessi solo bisogno di un promemoria. :) –