Diccionarios en Python. Domina los básicos: Crear, añadir y eliminar elementos.

Validación y tipado de Datos en Python: Dominando Pydantic, Enums e IntEnums para Aplicaciones Python Robustas.

imagen con una serpiente con los colores de Python sobre un diccionario

Diccionarios en Python. Añade elementos, recorre el diccionario y mucho más.

Bienvenidos al mundo de Python, donde las estructuras de datos como los diccionarios pueden transformar tu forma de manejar la información. Un diccionario en Python es una herramienta versátil, capaz de mapear claves únicas a valores. Aprender a añadir elementos y manipular estos diccionarios es esencial para cualquier desarrollador o analista de datos.

¿Qué es un Diccionario en Python?

Python ofrece diversas estructuras de datos, siendo el diccionario una de las más potentes. Un diccionario en Python es una colección desordenada de elementos, cada uno con una clave y un valor. Es ideal para almacenar y recuperar datos con una etiqueta, similar a cómo funciona un diccionario real.

Como la mayoría de las estructuras de datos de Python, los diccionarios tienen métodos inherentes y a nuestra disposición. Un ejemplo de ellos son: .keys(), .values(), .update() y .items()

Estos métodos proporcionan un conjunto poderoso de herramientas para manejar los diccionarios en Python, permitiendo a los desarrolladores principiantes manipular eficientemente esta estructura de datos clave-valor. Cada método tiene un propósito específico y entender cuándo y cómo usar cada uno es fundamental para la programación eficiente en Python.

Creando tu Primer Diccionario:

Para comenzar, definamos un diccionario en Python. Es una tarea sencilla y directa. Utilizamos las llaves {} con una estructura interna de {"clave": "valor"}.

mi_diccionario = {
    'nombre': 'Marta', 
    'edad': 45, 
    'ciudad': 'Buenos Aires'
}
print(mi_diccionario)
## {'nombre': 'Marta', 'edad': 45, 'ciudad': 'Buenos Aires'}

Los elementos previos a : son las claves. Estas son únicas y, como hemos dicho, desordenadas (significando que no es posible acceder por índice ni hacer ninguna operación con ellos en las que se espere un orden determinado para las claves). Los segundos elementos son los valores. Es importante colocar una coma detrás de cada clave-valor.

Puesto que no hay muchas limitaciones respecto al tipo de objetos que pueden ser incluidos en los valores de un diccionario, por supuesto es posible tener diccionarios anidados. Sería:

mi_diccionario = {
    'nombre': 'Marta', 
    'edad': 45, 
    'ciudad': 'Buenos Aires',
    'direccion': {'calle': 'XXX', 'codigo_postal': '030303'}
}
print(mi_diccionario)
## {'nombre': 'Marta', 'edad': 45, 'ciudad': 'Buenos Aires', 'direccion': {'calle': 'XXX', 'codigo_postal': '030303'}}


Cómo Añadir Elementos a un Diccionario

Añadir elementos a un diccionario es una tarea común. Veamos cómo se hace de manera eficiente.

Para añadir un elemento individual podemos hacerlo de la siguiente forma:

mi_diccionario['profesión'] = 'Desarrolladora'

Para hacer lo propio con múltiples elementos, podemos hacer uso del método anteriormente comnetado: update().

mi_diccionario.update({'empresa': 'GG', 'hobby': 'Ajedrez'})

Como vemos, usamos el método update de nuestro diccionario inicial para añadirle un segundo diccionario que creamos con las llaves {}.

Por supuesto, un diccionario previamente asignado a una variable funcionará, pero cualquier otro tipo de objeto no va a funcionar.

# No es aceptado sin ser tipo diccionario {}
#mi_diccionario.update("no":"funciona")  

si_funciona_dict = {"si": "funciona"}
mi_diccionario.update(si_funciona_dict)

Esto funciona porque el type(si_funciona_dict) es diccionario, y como comentábamos es necesario otro diccionario como tipo para ser añadido.

Para terminar este apartado de añadido de elementos a un diccionario, veamos que tal y como introdujimos, las restricciones en cuanto a qué tipo de valores / objetos podemos añadir a un diccionario son muy pocas.

Por ello, podemos añadir otros diccionarios, listas o incluso objetos creados por nosostros como valor en los diccionarios de Python.

mi_diccionario['lenguajes'] = ['Python', 'Rust']
mi_diccionario['educación'] = {'grado': 'B.Sc.', 'especialización': 'Informática'}


Selección y elliminación de elementos

En Python, puedes seleccionar y eliminar elementos de un diccionario de varias maneras. Aquí están las más comunes, junto con ejemplos para cada una:

Selección de Elementos en un Diccionario:

Acceso Directo por Clave: Usas la clave directamente para obtener el valor.

d = {'nombre': 'Alicia', 'edad': 25, 'nota': 8.4}
nombre = d['nombre']  # 'Alice'

Esto lanzará un KeyError si la clave no existe.

Método .get():

Obtiene el valor asociado con la clave. Al contrario de la anterior manera, de este modo nos devuelve un valor predeterminado si la clave no existe, sin lanzar un error que pare la ejecución.

Para muchos usos esta es la mejor manera de proceder.

edad = d.get('edad', 'No especificado')  # 25
profesion = d.get('profesion', 'No especificado')  # 'No especificado'
profesion = d.get('profesion', None)  # Nulo, pero sin fallar

Uso de .items() para Selección: Iterar sobre pares clave-valor para seleccionar datos.

for clave, valor in d.items():
    print(f"{clave}: {valor}")
## nombre: Alicia
## edad: 25
## nota: 8.4

Eliminación de Elementos en un Diccionario:

Método .pop(): Elimina la clave y devuelve el valor. Si la clave no se encuentra, se devuelve un valor por defecto si se ha especificado, de lo contrario se lanzará un KeyError.

edad = d.pop('edad', 'Clave no encontrada')  # Elimina 'edad' y devuelve 25

Método .popitem(): Elimina y devuelve un par clave-valor. En las versiones de Python 3.7 en adelante, este método elimina el último par agregado.

item = d.popitem()  # Devuelve y elimina el último par agregado ('nombre': 'Alice')

Operador del: Elimina la clave y su valor asociado. Si la clave no existe, se lanzará un KeyError.

del d['nombre']  # Elimina la clave 'nombre' y su valor asociado

Comprensión de Diccionarios para Filtrar: Crea un nuevo diccionario con elementos seleccionados, efectivamente eliminando los que no quieres. Esta manera de crear diccionarios la vamos a comentar en detalle en el siguiente párrafo.

d = {k: v for k, v in d.items() if v is not None}  # Elimina elementos con valores None

Método .clear(): Elimina todos los elementos del diccionario, dejándolo vacío.

d.clear()  # Elimina todos los elementos

Estas operaciones te permiten tener un control detallado sobre la selección y eliminación de elementos en los diccionarios de Python, lo que es esencial para la gestión eficiente de datos y estructuras de datos en tus programas.


Iteración, diccionarios y ‘dict comprehension’ o compresión de diccionario

La iteración sobre diccionarios es un aspecto fundamental de su uso. Aquí te mostramos cómo iterar sobre las claves y valores.

for clave, valor in mi_diccionario.items():
    print(f"{clave}: {valor}")
## nombre: Marta
## edad: 45
## ciudad: Buenos Aires
## direccion: {'calle': 'XXX', 'codigo_postal': '030303'}
## profesión: Desarrolladora
## empresa: GG
## hobby: Ajedrez
## si: funciona
## lenguajes: ['Python', 'Rust']
## educación: {'grado': 'B.Sc.', 'especialización': 'Informática'}

Respecto a la creación de diccionarios por compresión, igual que las listas, consiste en la creación del diccionario de la siguiente manera:

comprension_dict = {f'clave_{i}': i for i in range(3)}

# Es lo mismo que hacer

bucle_dict = {}
for i in range(3):
    bucle_dict.update({f'clave_{i}': i})
    
comprension_dict == bucle_dict
## True

Hay alguna otra cosa aquí. Aparte de la comprensión, que como vemos consiste convertir en diccionario el iterable que hay en su interior, también tenemos un f-string. Los f-string es la manera que tenemos en las nuevas versiones de Python para añadir el valor de una expresión o variable dentro de strings. A la string se le añade una f'' o `f”“.


Todos los métodos de los diccionarios

Por aquí te dejamos la explicación de todos los métodos de los diccionarios disponibles. Los paréntesis vacíos es porque el método no espera argumentos. En aquellos métodos que sí se esperan argumentos, añadimos entre paréntesis el tipo de los argumentos.

  • dict.clear(): Vacía todos los elementos del diccionario, dejándolo como un diccionario vacío.

  • dict.copy(): Retorna una copia superficial del diccionario. Útil cuando necesitas trabajar con una copia y no modificar el original.

  • dict.fromkeys(seq[, v]): Crea un nuevo diccionario con claves a partir de seq y valores todos establecidos a v. Si v no se proporciona, el valor por defecto será None.

  • dict.get(key[, d]): Devuelve el valor para key si key está en el diccionario; de lo contrario, devuelve d, que por defecto es None. Es una forma segura de acceder a los valores sin el riesgo de una excepción.

  • dict.items(): Devuelve una vista de los pares clave-valor del diccionario, lo que es útil para iterar sobre ellos.

  • dict.keys(): Devuelve una vista de las claves en el diccionario. Útil cuando solo necesitas trabajar con las claves.

  • dict.pop(key[, d]): Elimina la clave especificada y devuelve el valor correspondiente. Si la clave no se encuentra, y se proporciona el argumento d, se devuelve d; si d no se proporciona, se lanza una excepción.

  • dict.popitem(): Elimina y devuelve un par (clave, valor) del diccionario. Los pares se devuelven en un orden LIFO (last-in, first-out). Es útil para desestructurar diccionarios.

  • dict.setdefault(key[, d]): Devuelve el valor de la clave si está en el diccionario. Si no está, inserta la clave con un valor de d y lo devuelve (d es por defecto None).

  • dict.update([other]): Actualiza el diccionario con los pares clave-valor de other, sobrescribiendo las claves existentes. other puede ser otro diccionario o cualquier iterable de pares clave-valor.

  • dict.values(): Devuelve una vista de todos los valores en el diccionario. Es útil cuando los valores son lo que te interesa.

Dominar cómo añadir elementos y trabajar con diccionarios en Python es un paso crucial en tu viaje como programador. Estas operaciones son la base de la manipulación de datos y te abrirán las puertas a técnicas más avanzadas de programación y análisis de datos.


Mantente actualizado en consejos de Python principiante e intermedio

Ahora que conoces cómo trabajar con diccionarios en Python y cómo añadir elementos, te animamos a experimentar por tu cuenta. Crea tus propios diccionarios, juega con ellos y ve cómo puedes optimizar tus códigos y análisis.

Si deseas mantenerte actualizado…

Python Pydantic
Carlos Vecina
Carlos Vecina
Senior Data Scientist at Jobandtalent

Senior Data Scientist at Jobandtalent | AI & Data Science para aportar valor en la empresa

Relacionado