Transformateur de données
Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 78 sur 78.
Défi
DifficileCréez une fonction nommée transform_dataset qui traite une liste de dossiers d'étudiants pour analyse.
Chaque dossier est un dictionnaire contenant :
student_id: Un identifiant unique pour l'étudiantgrades: Une liste de notes numériquessubjects: Une liste de matières suivies par l'étudiant
Votre fonction doit :
- Calculer la note moyenne pour chaque étudiant
- Inclure uniquement les étudiants qui ont toutes leurs notes supérieures à 70 (étudiants qualifiés) - vous devez utiliser la fonction
all()de Python pour vérifier cette condition - Créer un résumé des matières suivies par les étudiants qualifiés, en comptant combien d'étudiants qualifiés suivent chaque matière
- Retourner un dictionnaire avec deux clés :
qualified_students: Un dictionnaire associant les identifiants des étudiants à leur note moyenne (arrondie à 2 décimales)subject_summary: Un dictionnaire associant les matières au nombre d'étudiants qualifiés suivant cette matière
Remarque : La fonction all() en Python renvoie True uniquement si tous les éléments de l'itérable sont vrais. Par exemple, all(grade > 70 for grade in grades) renverra True uniquement si chaque note est supérieure à 70.
Exemple d'entrée :
[
{
"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"]
}
]Exemple de sortie :
{
'qualified_students': {'S123': 88.33, 'S125': 90.67},
'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}Essayez vous-même
def transform_dataset(data):
# Votre solution ici
# Étape 1 : Calculer la note moyenne pour chaque étudiant et filtrer les étudiants qualifiés
# (étudiants ayant toutes leurs notes supérieures à 70)
# Étape 2 : Créer un résumé des matières suivies par les étudiants qualifiés
# Étape 3 : Retourner le dictionnaire final avec qualified_students et subject_summary
passToutes les leçons de Logic & Flow
1Exploration des variables
ConstantesAffectations multiplesÉchange de variablesVariables de substitutionArrondir des nombresCasting de listes4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles Partie 2
Opérations mathématiques Partie 1Opérations mathématiques Partie 2Récapitulatif - Chasse au trésorSous-ensembles et sur-ensemblesItérer sur les ensemblesRécapitulatif - Suivi de tournoi10Compréhensions de listes basiques
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l'agrégation de donnéesRécapitulatif - House Of ListsRécapitulatif - Elements Of Freedom13Système de gestion des stocks
Présentation du projetAjouter un article2Les dictionnaires - Partie 1
Qu'est-ce qu'un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif - Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifications d'appartenanceVérifications d'identitéErreurs d'indentationRécapitulatif - Filtre de vacances8Gestionnaire de dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions Lambda - Partie 1Fonctions Lambda - Partie 2Défi récapitulatif - Tri LambdaFonctions récursives - Partie 1Fonctions récursives - Partie 2Récapitulatif - Somme d'une liste imbriquée14Fonctions d'ordre supérieur
La fonction MapLa fonction FilterRécapitulatif - Validateur d'e-mailsRécapitulatif - Processeur de nombres3Dictionnaires - Partie 2
Méthodes de dictionnaireDictionnaires imbriquésVérification des clésParcourir les dictionnairesRécapitulatif - Compteur de fréquence6Les Ensembles - Partie 1
Qu'est-ce qu'un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation de données avancée
Utilisation de SumTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnaires