Guía Exhaustiva sobre Diccionarios en Python

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.

Etiquetas: Python diccionarios ordered-dict dict-comprehensions modulo-collections

Publicado el 6-16 19:27