Las listas guardan elementos en orden por posición. Pero a veces necesitas acceder a los datos por nombre, no por número. Por ejemplo: guardar el perfil de un usuario con nombre, edad y correo. Para eso existen los diccionarios.
¿Qué es un diccionario?
Un diccionario almacena pares de clave: valor. Accedes a los datos usando la clave (un nombre) en lugar de un índice numérico. Se escribe con llaves {}:
persona = {
"nombre": "Ana",
"edad": 28,
"ciudad": "Santiago"
}
Acceder a valores
print(persona["nombre"]) # Ana
print(persona["edad"]) # 28
También puedes usar .get(), que devuelve None si la clave no existe (en lugar de generar un error):
print(persona.get("correo")) # None
print(persona.get("correo", "N/A")) # N/A (valor por defecto)
Agregar y modificar
persona["profesion"] = "Ingeniera" # agrega nueva clave
persona["edad"] = 29 # modifica valor existente
Eliminar
del persona["ciudad"]
valor = persona.pop("profesion") # elimina y devuelve el valor
Ejemplo 1: perfil de usuario
usuario = {
"nombre": "Carlos",
"email": "[email protected]",
"activo": True,
"puntos": 150
}
if usuario["activo"]:
print(f"Bienvenido, {usuario['nombre']}. Tienes {usuario['puntos']} puntos.")
# Bienvenido, Carlos. Tienes 150 puntos.
Ejemplo 2: recorrer un diccionario
producto = {"nombre": "Laptop", "precio": 850000, "stock": 5}
for clave, valor in producto.items():
print(f"{clave}: {valor}")
# nombre: Laptop
# precio: 850000
# stock: 5
Ejemplo 3: lista de diccionarios
El patrón más común en Python — colecciones de objetos del mismo tipo:
empleados = [
{"nombre": "Ana", "salario": 3000},
{"nombre": "Carlos", "salario": 2800},
{"nombre": "María", "salario": 4500},
]
for emp in empleados:
print(f"{emp['nombre']}: ${emp['salario']}")
# Ana: $3000
# Carlos: $2800
# María: $4500
Métodos útiles
persona = {"nombre": "Ana", "edad": 28}
print(persona.keys()) # dict_keys(['nombre', 'edad'])
print(persona.values()) # dict_values(['Ana', 28])
print("nombre" in persona) # True
Errores frecuentes
KeyError: Acceder a una clave que no existe con [] genera un KeyError. Usa .get() cuando no estés seguro de que la clave existe.
Claves deben ser inmutables: Las claves de un diccionario no pueden ser listas. Usa strings, números o tuplas como claves.
Confundir con listas: Las listas se acceden por índice numérico (lista[0]). Los diccionarios se acceden por clave (dicc["nombre"]).
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de Python y recibes corrección inmediata de IA.
Comenzar gratis →