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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top