14. Listas con Diccionarios (nuevo 2024)

Vamos a crear una Lista donde la misma contiene como términos a Diccionarios.

Por el momento, para facilitar el código no vamos a considera la posibilidad de que se generen excepciones !!

Ejemplo 1.

La lista será con diccionarios será:

datos=[{"nombre":"","edad":0,"dni":0},{"nombre":"","edad":0,"dni":0}]

Veamos el código para cargar esta lista llamada datos que tiene 2 diccionarios.


Podemos ver que para el for de la línea 4 y 9, la variable i es un diccionario!!.
Cuando hacemos referencia a un diccionario, para poder acceder a el valor debemos hacer referencia a la clave, tal como lo muestran las líneas, donde reitero i es un diccionario!



La salida al ejecutar este script sería:


Ejemplo 2.


Vamos a crear un script en el que no necesitemos escribir los nombres de las claves, para facilitar el ingreso.



Vemos que en la línea 4, el for, hace que la variable i sea uno de los diccionarios que formas la lista datos.
Para la línea 5, el j toma
Ejemplo 3.
los valores de las claves del diccionario i, es por eso que podemos cargar el valor de una clave del diccionario invocando el nombre del diccionario y entre [] la clave, como se hace en la línea 6.



Ejemplo 3.

Veamos otra manera de recorrer el diccionario, usando indices para recorrer la lista



Podemos ver en este ejemplo que accedemos a los elementos de la lista usando índices:


Aquí, i toma valores de un rango de enteros...0,1,2.. y datos[i] es un diccionario.
Al igual que antes para hacer referencia a cada clave uso  j:


Donde j toma los valores de las claves de cada diccionario.


Ejemplo 4.

Vamos a escribir un código que permita cargar  nombre y nota de varios alumnos, en donde el nombre y la nota serán parte de un diccionario. La lista tendrá muchos diccionarios, donde cada elemento de la lista es un diccionario.
Veamos el codigo.




La salida de este script sería:
Si intentamos listar y no cargamos nada:


Si ingresamos una opción de menú no válida:


Si ingresamos una nota no válida:


Sin ingresamos un texto en el lugar de la nota:

Y finalmente si listamos luego de cargar varios registros: