1.7 – ¿Qué es un diccionario?

Un diccionario (dict) es una colección de pares clave → valor.

  • Las claves son únicas
  • Son mutables
  • Permiten acceso rápido por clave
  • Desde Python 3.7 mantienen el orden de inserción

Un diccionario es como una base de datos en miniatura.


Crear un diccionario

mi_diccionario = {
"nombre": "Juan",
"edad": 25,
"ciudad": "Madrid"
}

También se puede crear así:

mi_diccionario = dict(nombre="Juan", edad=25)

Diccionario vacío

diccionario_vacio = {}

Características importantes

  • Las claves deben ser inmutables (str, int, tuple…)
  • No pueden existir claves duplicadas
  • El acceso es muy rápido (O(1))

Esto es inválido:

mi_dic = {[1,2,3]: "error"}  # Las listas no pueden ser clave

Acceso a elementos

Acceso directo

nombre = mi_diccionario["nombre"]

Si la clave no existe → error.


Usar get()

profesion = mi_diccionario.get("profesion", "No especificada")

Evita errores si la clave no existe.


Modificar o agregar elementos

mi_diccionario["edad"] = 26
mi_diccionario["profesion"] = "Ingeniero"

Si la clave existe → modifica.
Si no existe → crea.


Eliminar elementos

pop()

edad = mi_diccionario.pop("edad")

del

del mi_diccionario["ciudad"]

popitem()

Elimina el último elemento añadido.

ultimo = mi_diccionario.popitem()

clear()

mi_diccionario.clear()

Consultar claves, valores y pares

claves = mi_diccionario.keys()
valores = mi_diccionario.values()
items = mi_diccionario.items()

Devuelven objetos tipo “vista”.


Verificar si una clave existe

"nombre" in mi_diccionario

Copiar diccionarios

copia = mi_diccionario.copy()

O:

copia = dict(mi_diccionario)

Mezclar diccionarios

update()

otro = {"pais": "España", "edad": 30}
mi_diccionario.update(otro)

Sobrescribe si la clave ya existe.


Operador moderno (Python 3.9+)

nuevo = mi_diccionario | otro

Longitud

len(mi_diccionario)

Iterar sobre diccionarios

Solo claves

for clave in mi_diccionario:
print(clave)

Solo valores

for valor in mi_diccionario.values():
print(valor)

Clave y valor

for clave, valor in mi_diccionario.items():
print(clave, valor)

Diccionarios anidados

usuario = {
"nombre": "Ana",
"direccion": {
"ciudad": "Barcelona",
"codigo_postal": 08001
}
}print(usuario["direccion"]["ciudad"])

Comprensión de diccionarios

cuadrados = {x: x**2 for x in range(5)}
print(cuadrados)

Ejemplo práctico completo

mi_diccionario = {
"nombre": "Ana",
"edad": 28,
"ciudad": "Barcelona"
}print(mi_diccionario["nombre"])mi_diccionario["edad"] = 29
mi_diccionario["profesion"] = "Diseñadora"mi_diccionario.pop("ciudad")for clave, valor in mi_diccionario.items():
print(f"{clave}: {valor}")

Tabla resumen de métodos principales

MétodoQué haceEjemploResultado
get()Obtiene valor sin errord.get("x")valor o None
pop()Elimina y devuelve valord.pop("edad")29
popitem()Elimina último pard.popitem()(«clave», valor)
clear()Vacía diccionariod.clear(){}
keys()Devuelve clavesd.keys()vista de claves
values()Devuelve valoresd.values()vista de valores
items()Devuelve paresd.items()vista de tuplas
update()Mezcla diccionariosd.update(otro)dic actualizado
copy()Copia superficiald.copy()nuevo dict

Cuándo usar diccionarios

Usa diccionarios cuando:

  • Necesites acceso rápido por clave
  • Quieras representar datos estructurados
  • Trabajes con JSON
  • Simules registros o entidades

Errores comunes

  • Intentar acceder a clave inexistente sin usar get()
  • Usar listas como claves
  • Confundir claves con valores