Supponendo di avere una lista con un numero enorme di elementi.python: ottenere il numero di elementi dalla lista (sequenza) con determinate condizioni
l = [ 1, 4, 6, 30, 2, ... ]
Desidero ottenere il numero di elementi da tale elenco, in cui un elemento deve soddisfare determinate condizioni. Il mio primo pensiero è stato:
count = len([i for i in l if my_condition(l)])
Ma se la my_condition() elenco filtrato ha anche un grande numero di elementi, penso che creando nuovo elenco per il risultato filtrato è solo spreco di memoria. Per l'efficienza, secondo me, al di sopra chiamata non può essere migliore di:
count = 0
for i in l:
if my_condition(l):
count += 1
C'è un modo funzionale, in stile di raggiungere per ottenere il # di elementi che soddisfano certe condizioni senza generare elenco temporaneo?
Grazie in anticipo.
La scelta tra i generatori e le liste è una scelta tra tempo di esecuzione e consumo di memoria. Sareste sorpresi di quanto spesso i risultati siano contro-intuitivi se si profila il codice. L'ottimizzazione prematura è la radice di tutto il male. –