Ejemplos diccionarios anidados

# Listas: conjunto de elementos sobre el que podemos realizar diferentes operaciones
# Tuplas: como las listas pero se pueden desempaquetar
# Diccionarios: Conjunto de pares clave, valor

notas = [1, 2, 3, 4]
tupla = (1, 2, 3)
diccionario = {
    "nombre": "Ana",
    "nota": 6
}

# En python todo esto se puede combinar

# Quiero guardar los datos de un alumno
alumno = {
    "nombre": "ana",
    "email": "ana@ana.es",
    "curso": "Python"
}
# Quiero guardar también las asignaturas, que son varias
alumno = {
    "nombre": "ana",
    "email": "ana@ana.es",
    "curso": "Python",
    "asignaturas": ["Programación", "Bases de datos"]
}

# Para cada asignatura, quiero guardar su nota y su profesor
alumno = {
    "nombre": "ana",
    "email": "ana@ana.es",
    "curso": "Python",
    "asignaturas": [{"nombre": "Programación", "nota": 7, "profesor": "JP"},
                    {"nombre": "Bases de datos", "nota": 8, "profesor": "Iu"}]
}
# Para cada asignatura, tiene 3 notas
alumno = {
    "nombre": "ana",
    "email": "ana@ana.es",
    "curso": "Python",
    "asignaturas": [{"nombre": "Programación", "nota": [7, 8, 6], "profesor": "JP"},
                    {"nombre": "Bases de datos", "nota": [8, 9, 9], "profesor": "Iu"}]
}
# Guardar la información de toda la clase que son varios alumnos
clase = [{
    "nombre": "ana",
    "email": "ana@ana.es",
    "curso": "Python",
    "asignaturas": [{"nombre": "Programación", "nota": [7, 8, 6], "profesor": "JP"},
                    {"nombre": "Bases de datos", "nota": [8, 9, 9], "profesor": "Iu"}]
},
    {
        "nombre": "iu",
        "email": "iu@iu.es",
        "curso": "Python",
        "asignaturas": [{"nombre": "Programación", "nota": [4, 2, 3], "profesor": "JP"},
                        {"nombre": "Bases de datos", "nota": [8, 9, 9], "profesor": "Iu"}]
    }
    ,
    {
        "nombre": "Eva",
        "email": "eva@eva.es",
        "curso": "Bases de datos",
        "asignaturas": [{"nombre": "sistema", "nota": [5, 7, 6], "profesor": "Pep"},
                        {"nombre": "Bases de datos", "nota": [7, 6, 9], "profesor": "Iu"}]
    }
]

for alumno in clase:
    print(alumno)  # Recorro los alumnos que, recordemos, son diccionarios

# Quiero un listado de todos los alumnos
for alumno in clase:
    print(alumno["nombre"])

nombres = [alumno['nombre'] for alumno in clase]
print(nombres)

# Para cada alumno ver las asignaturas que tiene
# Primero me recorro los alumnos
for alumno in clase:
    print(f"El alumno {alumno['nombre']} tiene las asignaturas:")
    for asignatura in alumno["asignaturas"]:
        print(asignatura["nombre"])

# Para cada alumno ver los profesores que tiene
for alumno in clase:
    print(f"El alumno {alumno['nombre']} tiene los profesores:")
    for asignatura in alumno["asignaturas"]:
        print(asignatura["profesor"])
        print(f"Que le ha puesto las siguienes notas")
        for nota in asignatura["nota"]:
            print(nota)

votaciones = [
    {
        "votante": "Juan",
        "votos": [
            {"participante": "Ana", "puntos": 5},
            {"participante": "Pedro", "puntos": 3}
        ]
    },
    {
        "votante": "Marta",
        "votos": [
            {"participante": "Ana", "puntos": 4},
            {"participante": "Luis", "puntos": 2}
        ]
    },
    {
        "votante": "Pedro",
        "votos": [
            {"participante": "Ana", "puntos": 3},
            {"participante": "Luis", "puntos": 5}
        ]
    }
]

# Nombre de los votantes
for votante in votaciones:
    print(f"El votante {votante["votante"]} ha hecho los siguientes votos")
    for voto in votante["votos"]:
        print(f"{voto["puntos"]} al participante {voto["participante"]}")


# Cuantos puntos tiene un participante
def puntosParticipante(votaciones, participante):
    puntos = 0
    for votante in votaciones:
        for voto in votante["votos"]:
            if voto["participante"] == participante:
                puntos += voto["puntos"]
    return puntos


print(puntosParticipante(votaciones, "Ana"))

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos