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ée une fonction nommée transform_dataset qui traite une liste de dossiers d’élèves à des fins d’analyse.
Chaque dossier est un dictionnaire contenant :
student_id: un identifiant unique pour l’élèvegrades: une liste de notes numériquessubjects: une liste des matières suivies par l’élève
Ta fonction doit :
- Calculer la note moyenne de chaque élève
- Inclure uniquement les élèves dont toutes les notes sont supérieures à 70 (les élèves admissibles) — tu dois utiliser la fonction
all()de Python pour vérifier cette condition - Créer un récapitulatif des matières suivies par les élèves admissibles, en comptant le nombre d’élèves admissibles qui suivent chaque matière
- Renvoyer un dictionnaire contenant deux clés :
qualified_students: un dictionnaire associant les identifiants des élèves à leur note moyenne (arrondie à 2 décimales)subject_summary: un dictionnaire associant les matières au nombre d’élèves admissibles qui les suivent
Remarque : en Python, la fonction all() 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 moyenne des notes de chaque étudiant et sélectionner les étudiants admissibles
# (étudiants dont toutes les notes sont supérieures à 70)
# Étape 2 : Créer un récapitulatif des matières suivies par les étudiants admissibles
# Étape 3 : Renvoyer le dictionnaire final contenant qualified_students et subject_summary
passToutes les leçons de Logique et flux
1Exploration des variables
ConstantesAffectations multiples de variablesÉchange de variablesVariables de remplacementArrondir les nombresConversion en liste4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles, partie 2
Opérations mathématiques, partie 1Opérations mathématiques, partie 2Révision - Chasse au trésorSous-ensembles et sur-ensemblesParcourir les ensemblesRévision - Suivi du tournoi10Compréhensions de liste de base
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l’agrégation de donnéesRécapitulatif - La maison des listesRécapitulatif - Les éléments de la liberté13Système de gestion des stocks
Présentation du projetAjouter un article2Dictionnaires, 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érifier l’appartenanceVérifier l’identitéErreurs d’indentationRécapitulatif – Filtre de vacances8Gestionnaire des dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Défi récapitulatif - Tri avec 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 - Traitement de nombres3Dictionnaires, partie 2
Méthodes des dictionnairesDictionnaires imbriquésVérifier la présence de clésParcourir les dictionnairesRécapitulatif - Compteur de fréquences6Ensembles, partie 1
Qu’est-ce qu’un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation avancée de données
Utiliser la sommeTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur Python en ligne