Quali sono i vantaggi e gli svantaggi di usare una lista di comprensione in Python 2,54-6?
-
21-09-2019 - |
Domanda
Ho sentito dire che list comprehensions può essere lento a volte, ma non sono sicuro perché? Sono nuovo di Python (proveniente da un background C #), e mi piacerebbe sapere di più su quando utilizzare una lista di comprensione rispetto a un ciclo for. Tutte le idee, suggerimenti, consigli, o esempi? Grazie per tutto l'aiuto.
Soluzione
Utilizzare una list comprehension (LC) quando è opportuno.
Ad esempio, se si passa qualsiasi ol' iterabile a una funzione, un generatore di espressione (genexpr) è spesso più appropriato, e un LC è uno spreco:
"".join([str(n) for n in xrange(10)])
# becomes
"".join(str(n) for n in xrange(10))
In alternativa, se non è necessario un elenco completo, un ciclo for con un'istruzione break sarebbe la vostra scelta. Il modulo itertools ha anche strumenti, come ad esempio TakeWhile.