Diccionarios
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:
