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).
La forma más directa y recomendada es aprovechar la evaluación booleana implícita de Python.
En Python, los siguientes valores son considerados falsos (False) y, por lo tanto, “vacíos”:
None (aunque no es “vacío”, es la ausencia de valor)"" o ''[](){}set()00.0Puedes simplemente usar la variable en una condición if:
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.") 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:
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.") None por SeparadoSi necesitas distinguir entre None (ausencia de objeto/valor) y un contenedor vacío (ej. []), debes verificar None explícitamente usando is None:
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 Noneois not Nonepara verificarNone, no==.
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.
Verifica si la lista está vacía (not lista_datos) y asigna una cadena de resultado:
lista_datos = []
resultado = "Vacía" if not lista_datos else "Con datos"
print(f"La lista está: {resultado}") # Salida: La lista está: Vacía 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.
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 NoneCombinando la verificación de None con la verificación de vacío:
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 ({}) 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.