Guía completa de diccionarios en Python: básico y avanzado

1. ¿Qué es un arreglo asociativo (diccionario) en Python?

En Python, el “arreglo asociativo” es una estructura de datos que gestiona la información mediante pares de clave y valor. En general, lo que se conoce como “arreglo asociativo” se ofrece en Python como el tipo dict. Por ejemplo, al usar el nombre como clave y la edad o la ocupación como valores, se pueden realizar búsquedas y gestiones de datos de manera eficiente. En este contexto, una “clave” es un identificador único que permite especificar cada dato, y cada clave debe ser única.

Diferencias entre el tipo diccionario y otras estructuras de datos

La característica del tipo diccionario es la búsqueda rápida mediante claves. En comparación con tipos secuenciales como listas o tuplas en Python, en lugar de buscar elementos secuencialmente, se accede directamente a la clave, lo que mejora considerablemente la velocidad de búsqueda. Especialmente cuando se manejan grandes volúmenes de datos o en escenarios donde las búsquedas son frecuentes, el tipo diccionario resulta muy útil.
# Ejemplo de diccionario
person = {
    "nombre": "Tanaka",
    "edad": 30,
    "ocupación": "Ingeniero"
}
print(person["nombre"])  # salida: Tanaka

2. Cómo crear diccionarios en Python

Python permite crear diccionarios de varias maneras. La notación literal, la función dict(), la función zip(), etc., se pueden elegir según la situación.

Método usando notación literal

La notación literal usa llaves {} para crear el diccionario, es la más común y sencilla. Con la notación literal, se pueden definir claves y valores en una sola línea, creando el diccionario de forma intuitiva.
# Notación literal
fruit_prices = {
    "manzana": 100,
    "plátano": 150,
    "naranja": 200
}

Método usando la función dict()

dict() es útil cuando se genera un diccionario a partir de una lista de tuplas, etc. Este método es especialmente práctico cuando los datos cambian dinámicamente.
# función dict
fruit_prices = dict([("manzana", 100), ("plátano", 150), ("naranja", 200)])

Método usando la función zip()

Al crear un diccionario asignando listas diferentes a claves y valores, se puede usar la función zip() para lograrlo de forma concisa. Esto permite generar eficientemente el diccionario a partir de las listas correspondientes.
# función zip
keys = ["manzana", "plátano", "naranja"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Operaciones básicas con diccionarios

Los diccionarios en Python son estructuras de datos mutables que permiten agregar, actualizar y eliminar datos de forma flexible. Además, se caracterizan por su rapidez en la búsqueda en comparación con otras estructuras de datos.

Agregar y actualizar elementos

Para agregar o actualizar elementos en un diccionario, basta con asignar un valor a una clave. Si asignas un valor a una clave existente, se actualiza; si especificas una clave nueva, se agrega.
fruit_prices = {"manzana": 100, "plátano": 150}
# Agregar un nuevo elemento
fruit_prices["naranja"] = 200
# Actualizar elemento existente
fruit_prices["manzana"] = 120

Eliminar elementos

Para eliminar un elemento con una clave específica, se pueden usar la sentencia del o el método pop(). El método pop() devuelve el valor eliminado, lo que resulta útil cuando se desea conservar el dato eliminado.
# Eliminación usando la sentencia del
del fruit_prices["plátano"]
# Eliminación usando el método pop (se puede obtener el valor eliminado)
removed_price = fruit_prices.pop("naranja")

4. Operaciones avanzadas

Como usos avanzados de los diccionarios, se incluyen la combinación con otros diccionarios y el conteo de frecuencias. Esto permite realizar manipulaciones de datos aún más avanzadas.

Combinación de diccionarios

Al combinar varios diccionarios en uno solo, el método update() es útil. Si hay claves duplicadas, se sobrescriben, lo que permite fusionar y actualizar datos de una sola vez.
dict1 = {"ringo": 100, "banana": 150}
 dict2 = {"banana": 200, "budou": 300}
 dict1.update(dict2)
 # shutsuryoku: {'ringo': 100, 'banana': 200, 'budou': 300}

Aplicación al conteo de frecuencias

El conteo de frecuencias es útil, por ejemplo, para contar la cantidad de apariciones de caracteres dentro de una cadena. Al usar diccionarios, la agregación y el análisis de datos se pueden realizar de manera eficiente.
text = "apple"
 frequency = {}
 for char in text:
     if char in frequency:
         frequency[char] += 1
     else:
         frequency[char] = 1
 # shutsuryoku: {'a': 1, 'p': 2, 'l': 1, 'e': 1}
侍エンジニア塾

5. Recorrido de diccionarios

Para procesar todos los elementos de un diccionario de una vez, es adecuado usar un bucle. Esto permite manipular claves y valores individualmente, o obtener una lista de los datos.

Obtener claves y valores mediante bucle

Para procesar claves, valores o sus combinaciones dentro de un diccionario, se utilizan los métodos keys(),values(),items().
fruit_prices = {"manzana": 100, "plátano": 150, "naranja": 200}
# Solo claves
for key in fruit_prices.keys():
    print(key)
# Solo valores
for value in fruit_prices.values():
    print(value)
# Pares de clave y valor
for key, value in fruit_prices.items():
    print(f"{key} tiene un precio de {value} yenes")

6. Resumen de los diccionarios de Python

Los diccionarios de Python (arrays asociativos) gestionan los datos mediante pares clave‑valor, lo que mejora considerablemente la eficiencia de búsqueda y manipulación. En comparación con listas y tuplas, la búsqueda es más rápida, lo que resulta ventajoso al manejar grandes volúmenes de datos. Además, es adecuado para la agregación y el análisis de datos, así como para combinarse con otras estructuras de datos, por lo que se puede considerar indispensable en la manipulación básica de datos en Python. Familiarizarse con la manipulación de diccionarios permite realizar procesamientos de datos aún más avanzados.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール