Maneras de Verificar Si Una Variable Está Vacia en Python

Las maneras más comunes y pythónicas de verificar si una variable está vacía en Python dependen de su tipo (cadena, lista, diccionario, etc.). Python evalúa ciertos valores como False en un contexto booleano (conocido como falsy).

  Nota

La forma más directa y recomendada es aprovechar la evaluación booleana implícita de Python.

1Evaluación Booleana Implícita (La Mejor Práctica)

En Python, los siguientes valores son considerados falsos (False) y, por lo tanto, “vacíos”:

  Nota

  • None (aunque no es “vacío”, es la ausencia de valor)
  • Cadenas vacías: "" o ''
  • Listas vacías: []
  • Tuplas vacías: ()
  • Diccionarios vacíos: {}
  • Conjuntos vacíos: set()
  • El número entero: 0
  • El número flotante: 0.0

Puedes simplemente usar la variable en una condición if:

python
mi_variable = []  # Lista vacía

if not mi_variable:
  print("La variable está vacía o es 'falsy'.")

# Ejemplo con cadena
nombre = "Alice"
if nombre:
  print(f"El nombre '{nombre}' tiene contenido.")
else:
  print("La cadena está vacía.")

2Comparación de Longitud con len()

Puedes usar la función len() para verificar si la longitud del objeto es cero (0). Aunque es funcional, es menos pythónica que la evaluación booleana:

python
mi_lista = [1, 2, 3]

if len(mi_lista) == 0:
  print("La lista está vacía.")
else:
  print(f"La lista tiene {len(mi_lista)} elementos.")
  
# O en el sentido inverso:
if len(mi_lista) > 0:
  print("No está vacía.")

3Verificar None por Separado

Si necesitas distinguir entre None (ausencia de objeto/valor) y un contenedor vacío (ej. []), debes verificar None explícitamente usando is None:

python
mi_dato = None

if mi_dato is None:
  print("El dato es None.")
elif not mi_dato:
  print("El dato es un contenedor vacío ([], '', {}).")
else:
  print("El dato tiene contenido.")

⚠️ Importante: Siempre usa is None o is not None para verificar None, no ==.

Ejemplos con el Operador Ternario


Python implementa el operador condicional ternario como una expresión en el formato valor_si_verdadero if condicion else valor_si_falso. Es perfecto para asignar un valor basado en si una variable está vacía o no.

1Evaluación Booleana Implícita

Verifica si la lista está vacía (not lista_datos) y asigna una cadena de resultado:

python
lista_datos = []
resultado = "Vacía" if not lista_datos else "Con datos"
print(f"La lista está: {resultado}")  # Salida: La lista está: Vacía

2Asignar un Valor Predeterminado (Alternativa Común)

En Python, la expresión A or B devuelve A si A es verdadero, de lo contrario, devuelve B. Esto se usa comúnmente para proporcionar un valor predeterminado si una variable está vacía.

python
mi_nombre = ""
nombre_final = mi_nombre or "Invitado"
print(f"Hola, {nombre_final}") # Salida: Hola, Invitado

mi_nombre = "Elena"
nombre_final = mi_nombre or "Invitado"
print(f"Hola, {nombre_final}") # Salida: Hola, Elena

3Manejo de Contenedor Vacío o None

Combinando la verificación de None con la verificación de vacío:

python
configuracion = None
mensaje = (
  "Falta la configuración (None)" if configuracion is None 
  else "Configuración vacía ({})" if not configuracion 
  else "Configuración lista"
)
print(f"Estado: {mensaje}") 
# Si configuracion = None: Salida: Estado: Falta la configuración (None)
# Si configuracion = {}: Salida: Estado: Configuración vacía ({})
  Nota

Recuerda que la evaluación booleana implícita solo funciona con tipos de datos que son considerados falsy en Python. Si necesitas verificar otro tipo de valor (como 0 o False), debes usar una verificación explícita con == o is.