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 objeto

Um é 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)?

questionAnswers(3)

yourAnswerToTheQuestion