Los diccionarios en Python son estructuras de datos esanciales que almacenan pares clave-valor, ofreciendo un acceso rápido a la información mediante claves únicas. Este artículo aborda desde operaciones básicas hasta técnicas avanzadas, con ejemplos de código modificados para ilustrar su flexibilidad.
Creación de Diccionarios
Uso de dict.fromkeys() para inicializar con valores nulos
claves = ['x', 'y', 'z']
diccionario = dict.fromkeys(claves)
print(diccionario) # Salida: {'x': None, 'y': None, 'z': None}
Creación directa con dict()
diccionario_directo = dict(ciudad='Madrid', poblacion=3200000)
print(diccionario_directo) # Salida: {'ciudad': 'Madrid', 'poblacion': 3200000}
Combinando listas con zip()
elementos = ['a', 'b', 'c']
cantidades = [5, 10, 15]
diccionario_zip = dict(zip(elementos, cantidades))
print(diccionario_zip) # Salida: {'a': 5, 'b': 10, 'c': 15}
Acceso a Valores
valor_obtenido = diccionario_zip.get('b')
print(valor_obtenido) # Salida: 10
valor_directo = diccionario_zip['c']
print(valor_directo) # Salida: 15
Actualización de Contenido
diccionario_zip['a'] = []
diccionario_zip['a'].extend([100, 200])
print(diccionario_zip['a']) # Salida: [100, 200]
Recorrido del Diccionario
for clave, valor in diccionario_zip.items():
print(f"Clave: {clave}, Valor: {valor}")
Manipulación de Elementos
# Agregar nueva entrada con setdefault
diccionario_zip.setdefault('d', 20)
print(diccionario_zip)
# Asignación directa para agregar o actualizar
diccionario_zip['e'] = 25
# Actualización masiva con update
diccionario_zip.update({'f': [1, 2], 'g': 30})
# Eliminar elementos con pop
diccionario_zip.pop('f')
print(diccionario_zip)
Eliminación Aleatoria con popitem()
for iteracion in range(5):
if diccionario_zip:
entrada_eliminada = diccionario_zip.popitem()
print(f"Eliminado: {entrada_eliminada}, Diccionario restante: {diccionario_zip}")
else:
break
Diccionarios Ordenados con OrderedDict
import collections
diccionario_ordenado = collections.OrderedDict([('primero', 1), ('segundo', 2), ('tercero', 3)])
print(diccionario_ordenado)
Comprensiones de Diccionario
# Comprensión básica con zip
dic_comprension = {k: v * 2 for k, v in zip(elementos, cantidades)}
print(dic_comprension)
# Comprensión con enumerate
dic_enum = {elem: idx + 1 for idx, elem in enumerate(elementos)}
print(dic_enum)
# Comprensión basada en índices
dic_indice = {elementos[i]: cantidades[i] for i in range(len(elementos))}
print(dic_indice)
Ejemplo Práctico: Conteo de Archivos
import os
ruta_carpeta = "ejemplo_directorio" # Ruta simulada para demostración
conteo_archivos = {}
if os.path.exists(ruta_carpeta):
for nombre in os.listdir(ruta_carpeta):
conteo_archivos[nombre] = len(conteo_archivos) # Asignar índice incremental
print(conteo_archivos)
else:
print(f"Directorio no encontrado: {ruta_carpeta}")
Los diccionarios proporcionan una solución eficiente para gestionar datos estructurados en Python, con múltiples métodos para adaptasre a diversas necesidades de programación. Es crucial manejar errores, por ejemplo, al usar popitem() en diccionarios vacíos.