Introducción a la programación en Python 6 — Diccionarios

René Silva Valdés
4 min readOct 13, 2021

--

Cómo utilizar diccionarios en Python

Anteriormente vimos las listas de Python, su utilidad, sus funciones y métodos. Estas dos últimas, son características de lo que se conoce como un objeto en programación (una entidad con sus propios métodos y funciones). Python incluye un montón de objetos que podemos usar (de hecho, los tipos de variable que vimos anteriormente son un objeto) e incluso podemos crear nuestros propios objetos dentro del lenguaje, sin embargo eso escapa de los contenidos de esta introducción. En esta ocasión veremos un objeto “similar”, pero que puede tener otros casos de uso, los diccionarios.

Diccionarios

Un diccionario en python es una estructura de datos que almacena valores en formato llave:valor. El nombre viene de la analogía con un diccionario del mundo real, en donde la información se encuentra en un formato palabra(llave):definición(valor). Para definir un diccionario en Python lo hacemos de la forma:

D = dict()

O alternativamente

D = {}

Como podemos observar, un diccionario se expresa utilizando paréntesis de llave. Si deseamos definir un diccionario col algunos valores, se puede hacer de la forma:

D = {"valor1" : 1}

En este ejemplo, el string "valor1" sería la llave y el int 1 sería el valor. Si deseamos recuperar un valor del diccionario lo podemos hacer mediante selección utilizando la llave:

D["valor1"]

Asimismo, si deseamos reemplazar el valor de una llave, basta con redefinirlo de la forma:

D["valor1"] = 0

Esta forma de definir valores para una llave nos sirve para agregar una nueva combinación, por ejemplo:

D[“valor2”] = 2

Si por el contrario, deseamos eliminar una combinación del diccionario lo podemos hacer de la forma:

del D[“valor2”]

Iteración sobre diccionarios

Tal como hemos visto hasta ahora, los valores de los diccionarios no se recuperan a través de indices, sino que a través de utilizando la llave correspondiente. Esto cambia las reglas al momento de iterar sobre un diccionario, ya que no podemos utilizar un “contador” que tome los valores de los índices como lo hacíamos con las listas (a menos que definamos las llaves como ints). Es necesario ir iterando sobre las llaves o sobre los valores, esto lo podemos hacer utilizando:

  • D.keys(): Retorna las llaves del diccionario D.
  • D.values(): Retorna los valores del diccionario D.

Con ayuda de estas funciones, podemos, iterar sobre los diccionarios y realizar operaciones como lo haríamos con una lista. Por ejemplo:

#Suma 1 a cada valor del diccionario, si no hay un int lanzará error
D = {"valor1":1, "valor2": 2}
for key in D.keys():
D[key] += 1

De esta forma podemos iterar sobre las llaves y valores sobre los diccionarios para resolver distintas necesidades que se nos planteen. Algunas observaciones que debemos tener en cuenta son:

  • Las llaves pueden ser cualquier tipo de variable, los mismo para los valores.
  • Los diccionarios son ordenados a partir de Python 3.7
  • La función len(D) retorna el número de combinaciones llave:valor contenidas por el diccionario D.

Diccionarios, listas y bases de datos

Hemos visto que las listas y los diccionarios pueden tener funcionalidades parecidas, sin embargo esto no significa necesariamente que uno sea el reemplazo del otro. De hecho, es posible utilizarlos juntos para resolver cierto tipo de problemas. Un ejemplo de esto es la abstracción de una tabla de una base de datos, en donde la tabla se modela como un diccionario, los nombres de las columnas son las llaves y los valores de la columna son una lista con los valores de esta. Con esta abstracción y utilizando los conocimientos adquiridos hasta ahora seremos capaces de realizar consultas sobre esta tabla, por ejemplo:

  • Máximo de la “columna 1”: D["columna1"].max()
  • “columna2” contiene el valor “test”: "test" in D["columna2"]

Esta implementación es un approach válido a problemas de la vida real y permite tener un framework de trabajo análogo a lo que sería una base de datos SQL o un archivo Excel, pero con las ventajas que provee la versatilidad de un lenguaje de programación como Python. No obstante, esta implementación no es la más utilizada en la actualidad, ya que librerías como pandas y numpy realizan estas mismas operaciones de manera optimizada. Así y todo, trabajar con estas librerías presenta bastantes solicitudes a trabajar con esta implementación que acabamos de presentar.

Con esto concluye la entrega de este capítulo. Hemos presentado los diccionarios en Python y hemos visto su funcionamiento, además de revisar uno de sus usos comunes. Espero que te haya servido y nos vemos en la siguiente entrega.

Un saludo!

--

--

No responses yet