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:

  1. 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
  2. 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.

Categorias: Articles

0 comentários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *