Python - Diccionarios Python (Notas con Promedio)

 
Vista:
sin imagen de perfil

Diccionarios Python (Notas con Promedio)

Publicado por Andres (6 intervenciones) el 28/09/2021 02:11:05
Buenas noches, por favor su ayuda con el siguiente codigo
Necesito que me indique cual de las dos personas tuvo mejor promedio solamente las notas y créditos que el estudiante NO retiró la materia, si la materia la retiro esa nota no se cuenta. La salida deberia mostrarme algo asi: [código del estudiante, nombres, apellidos, documento, programa, promedio, correo constitucional]
Para el correo piden que sea {primera letra del primer nombre} {primera letra del segundo nombre}. {primer apellido} {dos últimos números del documento}
Dijieron que este seria el esqueleto de la funcion pero no se que hace en realidad: (Seleccion(info: dict) -> list:)

Codigo:
seleccion = {
20170136837:{
"nombres" : "Jorge Juan",
"apellidos" : "Moreno López",
"documento" : 88481595,
"programa" : "ARQU",
"materias" : [{
"facultad" : "Arquitectura",
"codigo" : "ARQU-2113",
"nota" : 2.97,
"creditos" : 2,
"retirada" : "Si",},
{
"facultad" : "Arquitectura",
"codigo" : "ARQU-5048",
"nota" : 4.26,
"creditos" : 0,
"retirada" : "No",
}],

},
20130225137:{
"nombres" : "Sara Carolina",
"apellidos" : "Gómez Fernández",
"documento" : 58770043,
"programa" : "ARQD",
"materias" : [{
"facultad" : "Arquitectura",
"codigo" : "ARQD-7738",
"nota" : 3.36,
"creditos" : 3,
"retirada" : "No",
},
{
"facultad" : "Arquitectura",
"codigo" : "ARQD-7698",
"nota" : 1.59,
"creditos" : 4,
"retirada" : "Si", }, ]}
}

lista=[]
for key, datos in seleccion.items():
for k,j in(seleccion.get(key)).items():
if k=='materias':
for m in j:
for i,h in m.items():

lista.append(h)
lista.append(j)

print('{}; {} ; {} ; {} ; {} ;Promedio Ponderado = {}\n'.format(key,lista[0],lista[1],lista[2],lista[3],(lista[6]+lista[11])/2))
lista=[]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder