Volver a Python Básico
Diccionarios y Conjuntos
Los diccionarios almacenan pares clave-valor. Los conjuntos almacenan valores únicos sin orden.
Diccionarios
usuario = {
"nombre": "Alice",
"edad": 30,
"correo": "[email protected]"
}
# Acceso
print(usuario["nombre"]) # Alice
print(usuario.get("telefono", "N/A")) # N/A (acceso seguro)
# Modificar
usuario["edad"] = 31
usuario["ciudad"] = "Ciudad de México"
# Eliminar
del usuario["correo"]
eliminado = usuario.pop("ciudad", None)
Métodos de Diccionario
config = {"debug": True, "puerto": 8080, "host": "localhost"}
config.keys() # dict_keys(['debug', 'puerto', 'host'])
config.values() # dict_values([True, 8080, 'localhost'])
config.items() # dict_items([('debug', True), ...])
# Iterar
for clave, valor in config.items():
print(f"{clave} = {valor}")
# Fusionar (Python 3.9+)
predeterminados = {"timeout": 30, "reintentos": 3}
fusionado = {**config, **predeterminados}
# o: fusionado = config | predeterminados
Comprensiones de Diccionario
cuadrados = {x: x**2 for x in range(6)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# Con filtro
grandes_cuadrados = {k: v for k, v in cuadrados.items() if v > 10}
Diccionarios Anidados
base_datos = {
"usuarios": {
"alice": {"rol": "admin", "activo": True},
"bob": {"rol": "visitante", "activo": False},
}
}
print(base_datos["usuarios"]["alice"]["rol"]) # admin
Conjuntos
colores = {"rojo", "verde", "azul"}
colores.add("amarillo")
colores.discard("rojo") # Sin error si no existe
# Eliminar duplicados de una lista
nums = [1, 2, 2, 3, 3, 4]
unicos = set(nums) # {1, 2, 3, 4}
# Operaciones de conjuntos
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b) # Unión: {1, 2, 3, 4, 5, 6}
print(a & b) # Intersección: {3, 4}
print(a - b) # Diferencia: {1, 2}
print(a ^ b) # Diferencia sim: {1, 2, 5, 6}
Buena práctica: Usa
.get()en lugar del acceso directo ([]) cuando una clave podría no existir, para evitarKeyError.