Cómo verificar si la lista está vacía en Python

En este tutorial, repasaremos ejemplos sobre cómo verificar si la lista está vacía en Python. Usaremos la función len(), el estilo recomendado por Pep-8, así como la función bool().

Introducción

Las listas son una de las cuatro estructuras de datos más utilizadas proporcionadas por Python. Su funcionalidad, extensibilidad y facilidad de uso lo hacen útil para implementar varios tipos de funcionalidades.

Las listas de Python tienen algunas características interesantes:

  1. Mutabilidad: lo que significa que puede cambiar, lo que significa que nos permite agregar y eliminar entradas fácilmente. Esta es la principal diferencia entre las listas de Python y las tuplas.
  2. Iterabilidad: lo que significa que podemos iterar a través de él (repasar todos los elementos de la lista en orden)

El atributo principal en el que se centrará es Iterabilidad. Una parte importante cuando se trata de un objeto iterable, en este caso una lista, es verificar si hay algo para iterar. Si no se maneja correctamente, esto puede generar muchos errores no deseados.

Python proporciona varias formas de comprobar si nuestra lista está vacía o no, algunas implícitas y otras explícitas, y en este artículo repasaremos cómo comprobar si una lista de Python está vacía.

Uso de la función len() {#uso de la funciónlen}

Una de las técnicas es usar la función len() para verificar si nuestra lista está vacía o no:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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')

Producción

1
List is empty

Cuando len(py_list) se ejecuta, produce cero, que luego se convierte implícitamente en el valor booleano de False. Por lo tanto, en caso de una lista vacía, el programa será redirigido al bloque else.

Aunque este método parece simple, no es tan intuitivo para los principiantes.

Usando len() con el operador de comparación

Esta técnica es similar a la anterior pero es más explícita y fácil de entender. Es por eso que aquellos que son nuevos en python o en la codificación en sí, generalmente lo consideran más intuitivo:

1
2
3
4
if len(py_list) == 0:
    print('List is empty')
else:
    print('List not empty')

En el código anterior, len(py_list) == 0 será verdadero si la lista está vacía y será redirigido al bloque else. Esto también le permite establecer otros valores, en lugar de depender de que 0 se convierta en False. Todos los demás valores positivos se convierten en Verdadero.

Comparación con lista vacía

Este método también es muy simple y funciona bien para los principiantes, ya que implica comparar con una lista vacía:

1
2
3
4
if py_list == []:
    print('List is empty')
else:
    print('List is not empty')

Aquí nuevamente, estamos usando la operación de comparación para comparar una lista con otra: estoy vacía, y si ambas están vacías, se ejecutará el bloque if.

Estilo recomendado por Pep-8

1
2
3
4
5
6
#PEP-8 recommended style

if py_list:
    print('List is not empty')
if not py_list:
    print('List empty')

Para esto, echemos un vistazo a Pruebas de valor de verdad. Los documentos oficiales afirman que:

Aquí están la mayoría de los objetos incorporados considerados falsos:

  • constantes definidas como falsas: Ninguna y Falsa.
  • cero de cualquier tipo numérico: 0, 0.0, 0j, Decimal(0), Fracción(0, 1)
  • secuencias y colecciones vacías: '', (), [], {}, set(), range(0)

Como una lista vacía es, de hecho, solo una colección vacía, se convertirá en un valor booleano de False. Por lo tanto, si py_list está vacío, se convertirá en False.

La segunda declaración es bastante similar, excepto que not invertirá la condición falsa en una verdadera. Este enfoque es muy similar al enfoque if(len(list)).

Este es el enfoque preferido ya que es la solución más limpia y breve que existe.

Uso de la función bool() {#uso de la función bool}

También podemos usar la función bool() para verificar que una lista esté vacía:

1
2
3
4
5
6
#As truth value testing says [] braces denotes false

if bool(py_list):
    print('List is not empty')
else:
    print('List is empty')

Esta es básicamente una prueba de valor de verdad implementada manualmente. Entonces, si la lista no está vacía, la función devolverá Verdadero y si se ejecutará el bloque.

Este enfoque es menos común ya que podemos lograr los resultados deseados incluso sin usar bool(), pero no es malo saber cómo funciona Python bajo el capó.

Conclusión

Este artículo trataba sobre formas de verificar si nuestra lista de python está vacía o no. Comenzamos explorando diferentes técnicas y finalmente observamos algunos parámetros que podemos usar para hacer nuestro juicio sobre qué técnica puede funcionar para nosotros.

No puedo decir que este sea el final, ya que las nuevas actualizaciones de Python pueden dar lugar a estilos de codificación nuevos y mejorados. Así que es mejor seguir explorando y seguir aprendiendo.

Licensed under CC BY-NC-SA 4.0