Se quiser aprender como criar uma lista vazia em Python de forma eficiente, então este artigo é para si.
Vai aprender:
- Como criar uma lista vazia usando parênteses rectos
.
- Como criar uma lista vazia usando
list()
. - Os seus casos de uso.
- Como são eficientes (um é mais rápido do que o outro!). Utilizaremos o módulo
timeit
para os comparar.
p> Comecemos! ✨
🔹 Usando parênteses rectos
P>É possível criar uma lista vazia com um par de parênteses rectos vazio, como este:
💡 Dica: Atribuímos a lista vazia a uma variável para a utilizar mais tarde no nosso programa.
Por exemplo:
num =
A lista vazia terá comprimento 0
, como se pode ver aqui mesmo:
>>> num = >>> len(num)0
As listas vazias são valores falsificados, o que significa que avaliam a False
num contexto booleano:
>>> num = >>> bool(num)False
Adicionar elementos a uma lista vazia
P>Pode adicionar elementos a uma lista vazia utilizando os métodos append()
e insert()
:
-
append()
adiciona o elemento ao fim da lista. -
insert()
adiciona o elemento no índice particular da lista que escolher.
As listas podem ser valores verdadeiros ou falsos, dependendo se estão vazias ou não quando são avaliadas, pode utilizá-las em condições como esta:
if num:print("This list is not empty")else:print("This list is empty")
A saída deste código é:
This list is empty
Porque a lista estava vazia, por isso avalia para Falso.
Em geral:
- Se a lista não estiver vazia, avalia para
True
, portanto a cláusula if é executada. - Se a lista estiver vazia, avalia para
False
, portanto a outra cláusula é executada.
Exemplo:
No exemplo abaixo, criamos uma lista vazia e atribuímos à variável num
. Depois, utilizando um para loop, adicionamos uma sequência de elementos (inteiros) à lista que estava inicialmente vazia:
>>> num = >>> for i in range(3, 15, 2):num.append(i)
Verificamos o valor da variável para ver se os itens foram anexados com sucesso e confirmamos que a lista já não está vazia:
>>> num
💡 Dica: Usamos normalmente append()
para adicionar o primeiro elemento a uma lista vazia, mas também se pode adicionar este elemento chamando o insert()
método com índice 0
:
>>> num = >>> num.insert(0, 1.5) # add the float 1.5 at index 0>>> num
🔸 Utilizando a lista() Construtor
Alternativamente, pode criar uma lista vazia com o tipo construtor list()
, que cria um novo objecto de lista.
Segundo a Documentação Python:
Se não for apresentado qualquer argumento, o construtor cria uma nova lista vazia,
💡 Dica: Isto cria um novo objecto de lista em memória e como não passámos nenhum argumento a list()
, será criada uma lista vazia.
Por exemplo:
num = list()
Esta lista vazia terá comprimento 0
, como pode ver aqui mesmo:
>>> num = list()>>> len(num)0
E é um valor falso quando está vazio (avalia para False
num contexto booleano):
>>> num = list()>>> bool(num)False
Exemplo:
Esta é uma lista totalmente funcional, por isso podemos adicionar-lhe elementos:
>>> num = list()>>> for i in range(3, 15, 2):num.append(i)
E o resultado será uma lista não vazia, como pode ver aqui mesmo:
>>> num
🔹 Casos de uso
- Usamos tipicamente
list()
para criar listas a partir de iterables existentes, tais como cordas, dicionários, ou tuplos. - Vocês verão normalmente parênteses rectos
sendo usados para criar listas vazias em Python porque esta sintaxe é mais concisa e rápida.
🔸 Eficiência
Espere! Acabei de lhe dizer que é mais rápido que
list()
…
mas quanto mais rápido?
Vamos verificar as suas eficiências de tempo utilizando o módulo timeit.
Para utilizar este módulo no seu programa Python, precisa de o importar:
>>> import timeit
Especificamente, utilizaremos a função timeit deste módulo, que pode chamar com esta sintaxe:
💡 Dica: O código é repetido várias vezes para reduzir as diferenças de tempo que podem surgir de factores externos, tais como outros processos que possam estar a decorrer nesse momento em particular. Isto torna os resultados mais fiáveis para efeitos de comparação.
🚦 Nas suas marcas… prepare-se… pronto! Aqui está o código e a saída:
P>Primeiro, importamos o módulo.
>>> import timeit
Então, começamos a testar cada sintaxe.
Teste :
>>> timeit.timeit('', number=10**4)0.0008467000000109692
Lista de testes():
>>> timeit.timeit('list()', number=10**4)0.002867799999989984
💡 Dica: Repare que o código que quer que seja tempo tem de ser rodeado por aspas simples ''
ou aspas duplas ""
. O tempo devolvido pela função timeit
é expresso em segundos.
Compare estes resultados:
-
0.0008467000000109692
-
list()
0.002867799999989984
Pode-se ver que é muito mais rápido do que
list()
. Houve uma diferença de aproximadamente 0.002
segundos neste teste:
>>> 0.002867799999989984 - 0.00084670000001096920.0020210999999790147
Tenho a certeza que deve estar a perguntar isto agora mesmo: Porque é que list()
menos eficiente que se fazem exactamente a mesma coisa?
Bem… list()
é mais lento porque requer procurar o nome da função, chamá-la, e depois criar o objecto de lista na memória. Em contraste, é como um “atalho” que não requer tantos passos intermédios para criar a lista em memória.
Esta diferença de tempo não afectará muito o desempenho do seu programa mas é bom saber qual deles é mais eficiente e como funcionam nos bastidores.
🔹 Em Resumo
Pode criar uma lista vazia usando um par de parênteses rectos vazio ou o tipo construtor
list()
, uma função incorporada que cria uma lista vazia quando não são passados argumentos.
parênteses rectos são normalmente usados em Python para criar listas vazias porque é mais rápido e mais conciso.
Espero realmente que tenha gostado do meu artigo e o tenha achado útil. Agora pode criar listas vazias nos seus projectos Python. Veja os meus cursos online. Sigam-me no Twitter. ⭐️
Se quiser mergulhar mais fundo nas listas, pode gostar de ler:
- Apenso da Lista Python – Como Adicionar um Elemento a um Array, Explicado com Exemplos
- O Método Python Sort List Array – Método Python Sortar Array – Explicado com Exemplos
- Apenso da Lista Python – Como Adicionar um Elemento a um Array, Explicado com Exemplos