[Python] Dubbio sull'uso delle liste...

enrico franchi enrico.franchi a gmail.com
Sab 22 Giu 2013 11:14:07 CEST


2013/6/21 Federico Figus <figus.federico a gmail.com>:

> se sei sicuro che la seconda lista avrà N elementi allora puoi già creare
> una lista con dei None, così risparmi sia memoria (visto che None è un
> singleton) e ti eviti l'append che fa vari reallocazioni di memoria.

Ma no, dai. Pre-allocare le liste in Python e' un anti-pattern.

Tra l'altro, append non fa "varie riallocazioni". E' fatto per darti linear
amortized time su tante append, quindi complessivamente non funziona male.
In pratica append e' fatto in modo da richiedere "un po' piu' memoria" di quella
necessaria, per cui, di fatto, non riallochi ad ogni append.

La cosa ottimale e' comunque costruire direttamente la lista con una bella
list comprehension.



--
.
..: -enrico-


Maggiori informazioni sulla lista Python