1

COMO FILTRAR A LOS MEJORES Y PEORES ALUMNOS DE UN DICTIONARIO CON PYTHON: FOR, IF ANIDADOS, LISTAS , MANEJO DE STRINGS

En el siguiente tutorial busco poner en practica y explicar el uso de los ciclos for, Ifs listas y el manejo de strings al arrojar un resultado final.

Lo primero que tengo es un diccionario que 9 alumnos con distintas calificaciones. Lo que deseo saber es :

  • Quienes son los mejores alumnos
  • Cuales es el promedio y cada grupo de alumnos (mejores y peores)
  • Cuantos alumnos hay en cada grupo (Mejores y peores alumnos)
  • Pintar un resultado que incluya el promedio y los nombres de cada grupo de alumnos.

**1.- El diccionario de datos. **

estudiantes = [ { "nombre": "Jonathan", "apellido": "Jimenez", "calificacion": 6 }, { "nombre": "Martha", "apellido": "Diaz", "calificacion": 7 }, { "nombre": "Adriana", "apellido": "Diaz", "calificacion": 9 }, { "nombre": "Ruben", "apellido": "Diaz", "calificacion": 10 }, { "nombre": "Martina", "apellido": "Rios", "calificacion": 7 }, { "nombre": "Alberto", "apellido": "Sanchez", "calificacion": 3 }, { "nombre": "Ximena", "apellido": "Galvan", "calificacion": 8 }, { "nombre": "Monica", "apellido": "Alejo", "calificacion": 4 }, { "nombre": "Mario", "apellido": "Cornejo", "calificacion": 6 } ]

El Primer paso es crear las listas donde almacenare los datos y contendran listas de cada ciclo que vamos a recorrer

mejores_alumnos = [] mejores_promedios = [] mejores_nombres = [] bajos_nombres = [] bajos_alumnos = [] bajos_promedios = []

Ciclo For con Ifs anidados
En esta parte de mi codigo estoy recorriendo el la lista de estudiantes a traves de un ciclo for en donde, a través de un IF valido cuales de los alumnos tienes un promedio alto o bajo. Arriba de 7 para poder incluirlos en el listado de mejores alumnos, sino dentro bajos alumnos.

for element in estudiantes: if element['calificacion'] > 7: #print(element['nombre'], "=>", element['calificacion']) mejores_alumnos.append(element) else: #print(element['nombre'], "=>", element['calificacion']) bajos_alumnos.append(element)

Una vez agregado cada elemento correspondiente a su listado . A través de un list comprehension recorremos cada listado y sacamos las calificaciones de cada uno

#list comprehension mejores_promedios = [element['calificacion'] for element in mejores_alumnos] mejores_nombres = [element['nombre'] for element in mejores_alumnos] bajos_promedios = [element['calificacion'] for element in bajos_alumnos] bajos_nombres = [element['nombre'] for element in bajos_alumnos]

Finalmente imprimimos los mejores y Peopres promedios y sacamos el promedio dividiendo la suma de cada listado y lo dividimos entre la longitud.

`print("-----------")
print(“Mejores Promedios”)
print("-----------")
print(mejores_promedios)

print(“Menores Promedios”)
print("-----------")
print(bajos_promedios)`

<h1>Promedios.</h1>

mejores_average = sum(mejores_promedios) / len(mejores_promedios)
bajos_average = sum(bajos_promedios) / len(bajos_promedios)`

Finalmente imprimo un mensaje donde me muestra la informacion que necesito. Cuantos alumnos abajo de calificacion 7 son, su promedio general, y el nombre de cada uno de ellos

print("-----------") print(f’El promedio general de los mejores alumnos es {mejores_average} y son {len(mejores_alumnos)} alumnos: {mejores_nombres}’) print(f’El promedio general de los alumnos con promedios abajo de 7 es {bajos_average} y son {len(bajos_alumnos)} alumnos: alumnos: {bajos_nombres} ')

Escribe tu comentario
+ 2