Cómo comprobar si una lista está vacía en Python (valores de verdad pitónicos)

Aprenda las formas más pitónicas de comprobar si una lista está vacía en Python. Compare comprobaciones booleanas implícitas con comparaciones de longitud.

Pruebe esta solución en el Editor

Descripción general

En el desarrollo de Python, con frecuencia necesitará verificar si una lista contiene elementos antes de intentar leer, modificar o procesar su contenido. Acceder a elementos de una lista vacía usando corchetes (por ejemplo, `my_list[0]`) genera un `IndexError`, que detiene la ejecución del programa. Por lo tanto, implementar patrones de verificación limpios y defensivos es esencial para la estabilidad de la aplicación.

La forma más pitónica de comprobar si una lista está vacía es utilizando su valor booleano implícito (veracidad). En Python, las colecciones vacías (incluidas listas, diccionarios, tuplas y conjuntos) se evalúan como "False" en un contexto booleano, mientras que las colecciones pobladas se evalúan como "True". Escribir `if not my_list:` es directo, muy legible y cumple con las pautas de PEP 8.

Si bien comparar la longitud de la lista con cero (por ejemplo, `if len(my_list) == 0:`) o comparar la lista directamente con una lista literal vacía (por ejemplo, `if my_list == []:`) también funciona, estos enfoques generalmente no se recomiendan porque son menos concisos y pueden ser un poco más lentos. Adoptar las pruebas de valor de verdad integradas de Python hace que su código sea más limpio y eficiente.

Código y salida de ejecución

Este script muestra diferentes métodos para verificar si una lista está vacía en Python.

empty_list_check.py
Pruébelo en el editor
empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
Salida terminal
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

Implementación paso a paso

  • Escriba si no my_list: para comprobar si la lista está vacía (el enfoque más pitónico).
  • Escribe if my_list: para comprobar si la lista contiene uno o más elementos.
  • Evite usar len(my_list) == 0 o my_list == [] para verificar el vacío.

Preguntas frecuentes

¿Por qué se prefiere 'si no mi_lista' a 'si len(mi_lista) == 0'?

Es más legible, idiomático y ligeramente más rápido porque evita invocar la función len() de búsqueda y comparación de enteros.

¿Esta verificación funciona para otras colecciones como diccionarios o tuplas?

Sí, exactamente la misma regla de veracidad se aplica a dictados vacíos ({}), tuplas vacías (()), conjuntos vacíos (set()) y cadenas vacías ("").

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.