Transformateur de données
Fait partie de la section Logique et flux 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 Logique et flux
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 dictionnairesEntraînez-vous par vous-même : Compilateur Python en ligne