Pré-alocando uma lista de Nenhum
Suponha que você queira escrever uma função que produza uma lista de objetos e que saiba com antecedência o comprimenton
dessa lista.
Em python, a lista suporta acesso indexado em O (1), portanto é uma boa idéia pré-alocar a lista e acessá-la com índices em vez de alocar uma lista vazia e usar o métodoappend()
método. Isso ocorre porque evitamos o ônus de expandir a lista inteira se o espaço não for suficiente.
Se estou usando python, provavelmente os desempenhos não são tão relevantes em nenhum caso, mas qual é a melhor maneira de pré-alocar uma lista?
Conheço esses possíveis candidatos:
[None] * n
→ alocar duas listas[None for x in range(n)]
- ouxrange
em python2 → construindo outro objetoUm é significativamente melhor que o outro?
E se estamos no cason = len(input)
? Desde ainput
já existe, seria[None for x in input]
ter melhores desempenhos w.r.t.[None] * len(input)
?