Menu
CoddyTech

Transformador de datos

Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 78 de 78.

challenge icon

Desafío

Difícil

Crea una función llamada transform_dataset que procese una lista de registros de estudiantes para su análisis.

Cada registro es un diccionario que contiene:

  • student_id: Un identificador único del estudiante
  • grades: Una lista de calificaciones numéricas
  • subjects: Una lista de las asignaturas que cursa el estudiante

Tu función debería:

  1. Calcular la calificación promedio de cada estudiante
  2. Incluir solo a los estudiantes cuyas calificaciones sean todas superiores a 70 (estudiantes que cumplen los requisitos); deberías usar la función all() de Python para comprobar esta condición
  3. Crear un resumen de las asignaturas que cursan los estudiantes que cumplen los requisitos, contando cuántos de ellos cursan cada asignatura
  4. Devolver un diccionario con dos claves:
    • qualified_students: Un diccionario que asigna a cada ID de estudiante su calificación promedio (redondeada a 2 decimales)
    • subject_summary: Un diccionario que asigna a cada asignatura la cantidad de estudiantes que cumplen los requisitos y la cursan

Nota: La función all() de Python devuelve True solo si todos los elementos del iterable son verdaderos. Por ejemplo, all(grade > 70 for grade in grades) devolverá True solo si todas las calificaciones son superiores a 70.

Entrada de ejemplo:

[
    {
        "student_id": "S123", 
        "grades": [88, 92, 85], 
        "subjects": ["Math", "Science", "History"]
    },
    {
        "student_id": "S124", 
        "grades": [65, 95, 80], 
        "subjects": ["Math", "Science", "English"]
    },
    {
        "student_id": "S125", 
        "grades": [91, 89, 92], 
        "subjects": ["Math", "Physics", "History"]
    }
]

Salida de ejemplo:

{
    'qualified_students': {'S123': 88.33, 'S125': 90.67}, 
    'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}

Pruébalo tú mismo

def transform_dataset(data):
    # Tu solución aquí
    
    # Paso 1: Calcula la calificación promedio de cada estudiante y filtra a los estudiantes que cumplen los requisitos
    # (estudiantes con todas las calificaciones superiores a 70)
    
    # Paso 2: Crea un resumen de las asignaturas cursadas por los estudiantes que cumplen los requisitos
    
    # Paso 3: Devuelve el diccionario final con qualified_students y subject_summary
    pass

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Python online