Menu
CoddyTech

Transformateur de données

Fait partie de la section Logique et flux du Journey Python de Coddy. Leçon 78 sur 78.

challenge icon

Défi

Difficile

Cré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ève
  • grades : une liste de notes numériques
  • subjects : une liste des matières suivies par l’élève

Ta fonction doit :

  1. Calculer la note moyenne de chaque élève
  2. 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
  3. 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
  4. 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
    pass

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Compilateur Python en ligne