diccionariosen Python

Los diccionarios son unos de los recursos de almacenamiento de datos más utilizados en Python. Tienen una estructura de clave – valor que lo posicionan como un objeto de gran versatilidad en almacenamiento, tratamiento y explotación de información. Es por esto que cobra especial relevancia conocerlo y saber como tratarlo, puesto que es una estructura algo distinta a las listas y las tuplas.

Hemos creado una estructura que identifica diferentes aviones en un diccionario. Su clave será el nombre de la aeronave mientras que su valor, o valores serán las características asociadas a los aviones listados.

Los diccionarios de Python soportan una cardinalidad de uno a uno o de uno a N (1:N) como vemos a continuación. En el caso de la nacionalidad, no encuentra una correspondencia entre avión y nación, podemos respetar esta cardinalidad anidando una lista de países como un valor más, dentro del diccionario. Vease el caso del <<Panavia Tornado>> o el <<Eurofighter Typhoon>>, ambos detallan que son varias las naciones participantes en su producción.

Un diccionario con listas almacenadas como valor

Entre los valores que se han almacenado para cada elemento avión, se encuentra el año de introducción, el intervalo de fabricación, el país o los países que lo han producido y además, el número de unidades construidas.

A partir de aquí podemos utilizar los métodos propios de la clase diccionario disponibles in Python -> diccionarios en Python

El método len, permite calcular la longitud del diccionario, es decir el número de elementos que anida, en este caso aviones:

Devolverá el número de aviones o longitud del diccionario (11)

Con get puedes consultar la información asociada a cualquiera de los modelos almacenados:

El método get permite recorrer el elemento al que se referencia para obtener su contenido

El método keys permite listar las llaves del diccionario referenciado:

keys son las llaves del diccionario en este caso el nombre de los aviones

Para listar los valores del diccionario llamamos al método values:

values listará en conjunto de valores almacenados en el diccionario para cada avión

Mediante el método items, podremos explorar tanto las llaves como los valores del diccionario:

Item hace referencia tanto a las llaves como a los valores almacenados en el diccionario

Si lo preferís y para verlo más estiloso, podemos hacer uso del método items dentro de un bucle for, del siguiente modo:

Uso de un bucle for para iterar sobre los elementos anidados en un diccionario, tanto las llaves como los valores

El interprete de Python devolverá la siguiente información almacenada en el diccionario <<aircrafts>>:

Información almacenada en el diccionario de Python <<aircrafts>>

El uso de diccionarios permite el anidamiento de muy diferentes tipos de estructuras. A continuación voy a desarrollar un for anidado que permita extraer por un lado el nombre del avión como llave y después las características de cada uno de los aviones almacenados:

El bucle for itera primero sobre cada llave, para más adelante extraer sus valores

Con el desarrollo de un bucle anidado podemos iterar primero sobre cada llave y después dentro de los valores anidados en está, independientemente de su número o que no todos los elementos tengan el mismo número de valores anidados, es decir tengan cardinalidad diferente.

El bucle extrae cada llave del diccionario, sus valores y más tardes la siguiente llave. Se conoce como bucle anidado.

Podemos observar como extrae una lista anidada dentro de un diccionario como valor, en este caso los 4 países que participaron en la fabricación del Eurofighter Typhoon:

En el caso del <<Eurofighter Typhoon>> la cardinalidad respecto a las naciones participantes es de 1:N

Así pues, los diccionarios son un recurso muy util para almacenar datos de muy diferentes estructuras, respetando la cardinalidad aunque esta cobre complejidad respecto a una base de datos relacional, permitiendo el almacenamiento de arrays en estructuras más complejas.

Autor: ignacio

Profesor de Sistemas de Gestión de Información

Una respuesta a “Diccionarios en Python”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *