Trasformatore di dati
Fa parte della sezione Logica e flusso del percorso Python di Coddy. Lezione 78 di 78.
Sfida
DifficileCrea 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 studentegrades: un elenco di voti numericisubjects: un elenco delle materie che lo studente sta seguendo
La tua funzione deve:
- Calcolare il voto medio per ogni studente
- Includere solo gli studenti con tutti i voti superiori a 70 (studenti qualificati) — devi usare la funzione
all()di Python per verificare questa condizione - Creare un riepilogo delle materie seguite dagli studenti qualificati, contando quanti studenti qualificati seguono ciascuna materia
- 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
passTutte le lezioni di Logica e flusso
1Esplorazione delle variabili
CostantiAssegnazioni multiple di variabiliScambio di variabiliVariabili segnapostoArrotondare i numeriConversione di liste4Applicazione Rubrica
Visualizzare il menuAggiungere un contatto7Insiemi Parte 2
Operazioni matematiche Parte 1Operazioni matematiche Parte 2Riepilogo - Caccia al tesoroSottoinsiemi e sovrainsiemiIterare sugli insiemiRiepilogo - Tracciamento del torneo10Comprensioni di liste di base
La sintassiCreare liste sempliciAggiungere condizioniUsare l'aggregazione dei datiRipasso - La casa delle listeRipasso - Elementi di libertà13Sistema di gestione dell'inventario
Panoramica del progettoAggiungi articolo2Dizionari Parte 1
Che cos'è un dizionario?Creare un dizionarioAccedere ai valoriModificare i dizionariRipasso - Gestore di ricette5Decisioni avanzate
Operatore ternarioVerifiche di appartenenzaVerifiche di identitàErrori di indentazioneRiepilogo - Filtro vacanze8Gestore delle carriere degli studenti
Panoramica del progettoAggiungi studente11Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Sfida di ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di una lista annidata14Funzioni di ordine superiore
La funzione mapLa funzione filterRipasso - Validatore di emailRipasso - Elaboratore di numeri3Dizionari Parte 2
Metodi dei dizionariDizionari annidatiVerificare la presenza di chiaviIterare sui dizionariRipasso - Contatore di frequenza6Insiemi Parte 1
Che cos'è un insieme?Operazioni di baseMetodi degli insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Usare la sommaTrovare il minimo e il massimoOrdinare i dati in modo efficienteRipasso - Ordinatore di dizionari12Gestione di base degli errori
Che cos'è la gestione degli errori?Il blocco try ed exceptGestire più eccezioniRiepilogo - Errori nel carrelloEsercitati da solo: Compilatore Python online