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éez une fonction nommée transform_dataset qui traite une liste de dossiers d’étudiants à des fins d’analyse.

Chaque dossier est un dictionnaire contenant :

  • student_id : un identifiant unique pour l’étudiant
  • grades : une liste de notes numériques
  • subjects : une liste des matières suivies par l’étudiant

Votre fonction doit :

  1. Calculer la note moyenne de chaque étudiant
  2. Inclure uniquement les étudiants dont toutes les notes sont supérieures à 70 (étudiants admissibles) — vous devez utiliser la fonction all() de Python pour vérifier cette condition
  3. Créer un récapitulatif des matières suivies par les étudiants admissibles, en comptant combien d’étudiants admissibles suivent chaque matière
  4. Renvoyer 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 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 avec 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