Menu
CoddyTech

Trasformatore di dati

Fa parte della sezione Logica e flusso del percorso Python di Coddy. Lezione 78 di 78.

challenge icon

Sfida

Difficile

Crea una funzione chiamata transform_dataset che elabori un elenco di record degli studenti per analizzarli.

Ogni record è un dizionario contenente:

  • student_id: un identificatore univoco dello studente
  • grades: un elenco di voti numerici
  • subjects: un elenco delle materie che lo studente sta seguendo

La tua funzione dovrebbe:

  1. Calcolare il voto medio per ogni studente
  2. Includere solo gli studenti che hanno tutti i voti superiori a 70 (studenti idonei): per verificare questa condizione, dovresti usare la funzione all() di Python
  3. Creare un riepilogo delle materie seguite dagli studenti idonei, contando quanti studenti idonei seguono ciascuna materia
  4. Restituire un dizionario con due chiavi:
    • qualified_students: un dizionario che associa gli ID degli studenti ai rispettivi voti medi (arrotondati a 2 cifre decimali)
    • subject_summary: un dizionario che associa le materie al numero di studenti idonei che le seguono

Nota: la funzione all() in Python restituisce True solo se tutti gli elementi dell'iterabile sono veri. Ad esempio, all(grade > 70 for grade in grades) restituirà True solo se ogni voto è superiore a 70.

Input di esempio:

[
    {
        "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"]
    }
]

Output di esempio:

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

Provalo tu

def transform_dataset(data):
    # La tua soluzione qui
    
    # Passo 1: Calcola la media dei voti di ogni studente e seleziona gli studenti idonei
    # (studenti con tutti i voti superiori a 70)
    
    # Passo 2: Crea un riepilogo delle materie seguite dagli studenti idonei
    
    # Passo 3: Restituisci il dizionario finale con qualified_students e subject_summary
    pass

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Python online