Aprende Python · lección gratuita
Un diccionario es una colección que guarda datos en pares clave: valor. A diferencia de las listas, donde accedes por posición numérica, en un diccionario accedes por la clave, que suele ser un texto descriptivo. Son ideales para representar entidades del mundo real (una persona, un producto, una configuración) donde cada dato tiene un nombre.
d = {"nombre": "Ana", "edad": 30}.d["nombre"].d.get("clave") accede sin error: devuelve None (o un valor por defecto) si la clave no existe.d["ciudad"] = "Lima".in: "edad" in d.Un diccionario asocia cada clave con un valor. Las claves deben ser únicas e inmutables (texto o números, por ejemplo), mientras que los valores pueden ser de cualquier tipo. Para leer un valor escribes el nombre del diccionario seguido de la clave entre corchetes. Si la clave no existe, [] lanza un error KeyError; por eso a veces conviene usar .get(), que devuelve None en lugar de fallar, o un valor por defecto si lo indicas como segundo argumento.
Añadir y actualizar usan la misma sintaxis: d["clave"] = valor. Si la clave ya existe, el valor anterior se reemplaza; si no existe, se crea una nueva entrada. Esto convierte al diccionario en una estructura muy flexible para ir construyendo datos paso a paso.
persona = {"nombre": "Ana", "edad": 30}
print(persona["nombre"]) # Ana
print(persona.get("ciudad")) # None (no existe la clave)
print(persona.get("ciudad", "Desconocida")) # Desconocida
persona["ciudad"] = "Lima" # añadir
persona["edad"] = 31 # actualizar
print(persona) # {'nombre': 'Ana', 'edad': 31, 'ciudad': 'Lima'}
Para saber si una clave está presente antes de usarla, el operador in es la forma más limpia y legible. Devuelve True o False y trabaja sobre las claves del diccionario.
# 1) Crear y leer con corchetes
producto = {"nombre": "Teclado", "precio": 80}
print(producto["nombre"]) # Teclado
print(producto["precio"]) # 80
# 2) .get() evita el KeyError
stock = {"manzanas": 5}
print(stock.get("peras")) # None
print(stock.get("peras", 0)) # 0 (valor por defecto)
# 3) Añadir y actualizar claves
config = {"tema": "claro"}
config["idioma"] = "es" # añade nueva clave
config["tema"] = "oscuro" # actualiza valor existente
print(config) # {'tema': 'oscuro', 'idioma': 'es'}
# 4) Comprobar pertenencia con in
usuario = {"nombre": "Luis", "activo": True}
print("nombre" in usuario) # True
print("email" in usuario) # False
💡 Usa.get()cuando no estés seguro de que la clave exista. Te ahorra unKeyErrory te permite definir un valor por defecto razonable en una sola línea.
| Acción | Sintaxis | Resultado |
|---|---|---|
| Crear diccionario | d = {"a": 1, "b": 2} | nuevo diccionario |
| Crear vacío | d = {} | diccionario vacío |
| Leer valor | d["a"] | 1 (error si no existe) |
| Leer seguro | d.get("x") | None si no existe |
| Leer con defecto | d.get("x", 0) | 0 si no existe |
| Añadir/actualizar | d["c"] = 3 | crea o sobrescribe |
| ¿Existe la clave? | "a" in d | True / False |
---