Menu
Coddy logo textTech

Transformateur de données

Fait partie de la section Logic & Flow 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 pour 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 de matières suivies par l'étudiant

Votre fonction doit :

  1. Calculer la note moyenne pour chaque étudiant
  2. 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
  3. 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
  4. 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
    pass

Toutes les leçons de Logic & Flow