Artigo original: Python Empty List Tutorial – How to Create an Empty List in Python

Se quer aprender a criar uma lista vazia em Python de modo eficiente, este artigo é para você.

Aqui, você aprenderá:

  • Como criar uma lista vazia usando colchetes [].
  • Como criar uma lista vazia usando list().
  • Seus casos de uso.
  • Qual a eficiência das listas (uma é mais rápida do que a outra!). Usaremos o módulo timeit para compará-las.

Vamos começar! ✨

🔹 Usando colchetes

Você pode criar uma lista vazia com um par de colchetes vazios dessa forma:

image-131

💡 Dica: Atribuímos a lista vazia a uma variável para usá-la mais tarde em nosso programa.

Por exemplo:

num = []

A lista vazia terá tamanho 0, como você pode ver aqui:

>>> num = []
>>> len(num)
0

Listas vazias são valores falsos, ou seja, elas avaliam como False em um contexto booleano:

>>> num = []
>>> bool(num)
False

Adicionando elementos a uma lista vazia

Você pode adicionar elementos a uma lista vazia usando os métodos append() e insert():

  • append() adiciona o elemento ao final da lista.
  • insert() adiciona o elemento em um índice específico da lista à sua escolha.

Como listas podem ser valores verdadeiros ou falsos, dependendo de estarem vazias ou não ao serem avaliadas, você pode utilizá-las em condicionais como este:

if num:
	print("A lista não está vazia")
else:
	print("A lista está vazia")

O resultado desse código é:

A lista está vazia

Como a lista está vazia, a verificação gera o valor booleano False.

Em geral:

  • Se a lista não está vazia, a verificação gera True, então a instrução de if é executada.
  • Se a lista está vazia, a verificação gera False, então a instrução de else é executada.

Exemplo:

No exemplo abaixo, criamos uma lista vazia e a atribuímos a uma variável num. Em seguida, usando um laço for, adicionamos uma sequência de elementos (inteiros) à lista que estava vazia inicialmente:

>>> num = []
>>> for i in range(3, 15, 2):
	num.append(i)

Verificamos o valor da variável para ver se os itens foram adicionados com sucesso e confirmamos que a lista não está mais vazia:

>>> num
[3, 5, 7, 9, 11, 13]

💡 Dica: Normalmente usamos append() para adicionar o primeiro elemento a uma lista vazia, mas você também pode adicionar esse elemento chamando o método insert() com o índice 0:

>>> num = []
>>> num.insert(0, 1.5) # adiciona o valor 1,5 no índice 0
>>> num
[1.5]

🔸 Usando o construtor list()

Como alternativa, você pode criar uma lista vazia com o construtor de tipo list(), que cria um novo objeto de lista.

De acordo com a documentação do Python:

Se nenhum argumento for dado, o construtor cria uma nova lista vazia, [].
image-132

💡 Dica: Isso cria um novo objeto de lista na memória e, como não passamos argumentos para list(), será criada uma lista vazia.

Por exemplo:

num = list()

Esta lista vazia terá tamanho 0, como você pode ver aqui:

>>> num = list()
>>> len(num)
0

Ela também é um valor falso quando está vazia (é avaliada como False em um contexto booleano):

>>> num = list()
>>> bool(num)
False

Exemplo:

Esta é uma lista totalmente funcional, por isso podemos adicionar elementos à ela:

>>> num = list()
>>> for i in range(3, 15, 2):
	num.append(i)

O resultado será uma lista não vazia, como você pode ver aqui:

>>> num
[3, 5, 7, 9, 11, 13]

🔹 Casos de uso

  • Tipicamente, usamos list() para criar listas a partir de iteráveis existentes, como strings, dicionários ou tuplas.
  • Você normalmente verá colchetes [] sendo usados para criar listas vazias em Python, pois essa sintaxe é mais concisa e mais rápida.

🔸 Eficiência

Espere! Acabo de dizer a você que [] é mais rápido do que list()...

Mas quanto?

Vamos ver a eficiência delas em termos de tempo usando o módulo timeit.

Para usar esse módulo em seu programa em Python, é preciso importá-lo:

>>> import timeit

Especificamente, usaremos a função timeit desse módulo, que pode ser chamado com a sintaxe abaixo:

image-129

💡 Dica: O código é repetido várias vezes para reduzir diferenças de tempo que possam surgir por causa de fatores externos, como outros processos que possam estar em execução naquele momento específico. Isso torna os resultados mais confiáveis para fins de comparação.

🚦 Em suas marcas... atenção... ! Aqui está o código e o resultado:

Primeiro, importamos o módulo.

>>> import timeit

Em seguida, testamos cada sintaxe.

Testando []:

>>> timeit.timeit('[]', number=10**4)
0.0008467000000109692

Testando list():

>>> timeit.timeit('list()', number=10**4)
0.002867799999989984

💡 Dica: Observe que o código cujo tempo você quer medir precisa estar cercado de aspas simples '' ou aspas duplas "". O tempo retornado pela função timeit é expresso em segundos.

Compare os resultados:

  • []: 0.0008467000000109692
  • list(): 0.002867799999989984

Você pode ver que [] é muito mais rápido do que list(). Houve uma diferença de aproximadamente 0,002 segundos neste teste:

>>> 0.002867799999989984 - 0.0008467000000109692
0.0020210999999790147

Imagino que você esteja se perguntando agora: Mas por que list() é menos eficiente do que [] se eles fazem exatamente a mesma coisa?

Bem... list() é mais lenta porque exige procurar o nome da função, chamá-la e, em seguida, criar o objeto de lista na memória. Por outro lado, [] é como um "atalho" que não retorna tantos passos intermediários para criar a lista na memória.

Essa diferença de tempo não afetará muito o desempenho de seu programa , mas é bom saber qual delas é mais eficiente e como elas funcionam por debaixo dos panos.

🔹 Em resumo

Você pode criar uma lista vazia usando um par vazio de colchetes [] ou com o construtor de tipo list(), uma função integrada que cria uma lista vazia quando nenhum argumento é passado.

Os colchetes [] são normalmente usados em Python para criar listas vazias porque são mais rápidos e mais concisos.

Espero que você tenha gostado do artigo e o tenha achado útil. Agora, você pode criar listas vazias em seus projetos em Python. Confira os cursos on-line da autora e siga-a no Twitter. ⭐️

Se quiser examinar listas mais a fundo, uma leitura interessante é: