Menu
Coddy logo textTech

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 elabora un elenco di record degli studenti per l'analisi.

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 deve:

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

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

Esempio di input:

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

Esempio di output:

{
    '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
    
    # Passaggio 1: calcola la media dei voti di ogni studente e seleziona gli studenti idonei
    # (studenti con tutti i voti superiori a 70)
    
    # Passaggio 2: crea un riepilogo delle materie seguite dagli studenti idonei
    
    # Passaggio 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