Introdução
Listas são uma das quatro estruturas de dados mais comummente utilizadas fornecidas por Python. A sua funcionalidade, extensibilidade, e facilidade de utilização tornam-na útil para implementar vários tipos de funcionalidades.
As listas Python têm algumas características interessantes:
- Mutabilidade – o que significa que pode mudar, o que significa que nos permite adicionar e apagar facilmente entradas da mesma. Esta é a principal diferença entre as listas Python e os tuples
- Iterabilidade – o que significa que podemos iterar através dela (passar por todos os elementos da lista na ordem)
O principal atributo em que nos vamos concentrar é a Iterabilidade. Uma parte importante ao lidar com um objecto iterável, neste caso uma lista, é verificar se existe alguma coisa para iterar através dela. Se não for tratada correctamente, isto pode levar a muitos erros indesejados.
Python fornece várias formas de verificar se a nossa lista está vazia ou não, algumas implícitas e algumas explícitas, e neste artigo, vamos rever como verificar se uma lista Python está vazia.
- Utilizando o
len()
Função - Utilizando o
len()
Com um operador de comparação - Comparação com lista vazia
- Pep-8 Estilo Recomendado (Mais Popular e Aconselhado)
li>Usando o bool()
Função
Usando len() Função
Uma das técnicas é usar a função len()
para verificar se a nossa lista está vazia ou não:
py_list = """Here len() returns 0, which is implicitly converted to false"""if len(py_list):print('The list is not empty')else:print('T list is empty')
Output
List is empty
Quando len(py_list)
executa-se produzindo zero, o qual é então implicitamente lançado ao valor booleano de False
. Assim, no caso de uma lista vazia, o programa será redireccionado para o outro bloco.
Embora este método pareça simples, não é tão intuitivo para principiantes.
Using len() With Comparison Operator
Esta técnica é semelhante à anterior, mas é mais explícita e fácil de compreender. É por isso que aqueles que são novos no python ou na codificação em si consideram-na mais intuitiva:
if len(py_list) == 0:print('List is empty')else:print('List not empty')
No código acima, len(py_list) == 0
será verdadeira se a lista estiver vazia e será redireccionada para o outro bloco. Isto também lhe permite definir outros valores, em vez de confiar em 0
ser convertido como False
. Todos os outros valores positivos são convertidos em True
.
Comparação com Lista Vazia
Este método é também muito simples e funciona bem para principiantes, pois envolve a comparação com uma lista vazia:
if py_list == :print('List is empty')else:print('List is not empty')
Aqui novamente, estamos a utilizar a operação de comparação para comparar uma lista com outra – estou vazia, e se ambas estiverem vazias o bloco if
será executado.
Pep-8 Estilo Recomendado
#PEP-8 recommended styleif py_list:print('List is not empty')if not py_list:print('List empty')
Para isto, vamos dar uma olhada no Teste de Valores de Verdade. Os documentos oficiais declaram que:
Aqui estão a maioria dos objectos incorporados considerados falsos:
- constantes definidos como falsos: Nenhum e False.
- zero de qualquer tipo numérico: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- sequências e colecções vazias: ”, (), , {}, set(), range(0)
Como uma lista vazia é de facto apenas uma colecção vazia, será convertida para um valor booleano de False
. Portanto, se py_list
estiver vazia, será convertida para False
.
A segunda afirmação é bastante semelhante, excepto not
inverterá a falsa condição para uma verdadeira. Esta abordagem é muito semelhante a if(len(list))
abordagem.
Esta é a abordagem preferida, pois é a solução mais limpa e mais curta que existe.
Using bool() Function
We can also use the bool()
function to verify a list is empty:
#As truth value testing says braces denotes falseif bool(py_list):print('List is not empty')else:print('List is empty')
This is basically a hand implemented truth value test. Assim, se a lista não estiver vazia, a função retornará True
e se o bloco for executado.
Esta abordagem é menos comum pois podemos alcançar os resultados desejados mesmo sem usar bool()
, mas não é uma coisa má saber como funciona Python debaixo da capa.
Conclusion
Este artigo tratava de formas de verificar se a nossa lista python está vazia ou não. Começámos por explorar diferentes técnicas e finalmente analisámos alguns parâmetros que podemos utilizar para fazer o nosso julgamento sobre que técnica pode funcionar para nós.
Não posso dizer que este seja o fim, pois novas actualizações Python podem dar origem a novos e mais aperfeiçoados estilos de codificação. Por isso é melhor continuar a explorar e continuar a aprender.
0 comentários