Menu
CoddyTech

Daten-Transformer

Teil des Abschnitts Logik und Ablaufsteuerung der Python-Journey von Coddy. Lektion 78 von 78.

challenge icon

Aufgabe

Schwer

Erstelle eine Funktion namens transform_dataset, die eine Liste von Schülerdatensätzen zur Analyse verarbeitet.

Jeder Datensatz ist ein Wörterbuch mit folgenden Einträgen:

  • student_id: Eine eindeutige Kennung für den Schüler
  • grades: Eine Liste numerischer Noten
  • subjects: Eine Liste der Fächer, die der Schüler belegt

Deine Funktion sollte:

  1. Die Durchschnittsnote für jeden Schüler berechnen
  2. Nur Schüler berücksichtigen, deren Noten alle über 70 liegen (qualifizierte Schüler) – du solltest die Python-Funktion all() verwenden, um diese Bedingung zu prüfen
  3. Eine Übersicht der von qualifizierten Schülern belegten Fächer erstellen, in der gezählt wird, wie viele qualifizierte Schüler jedes Fach belegen
  4. Ein Wörterbuch mit zwei Schlüsseln zurückgeben:
    • qualified_students: Ein Wörterbuch, das Schüler-IDs ihren Durchschnittsnoten zuordnet (auf 2 Dezimalstellen gerundet)
    • subject_summary: Ein Wörterbuch, das Fächer der Anzahl qualifizierter Schüler zuordnet, die das jeweilige Fach belegen

Hinweis: Die Python-Funktion all() gibt nur dann True zurück, wenn alle Elemente im iterierbaren Objekt wahr sind. Zum Beispiel gibt all(grade > 70 for grade in grades) nur dann True zurück, wenn jede Note über 70 liegt.

Beispieleingabe:

[
    {
        "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"]
    }
]

Beispielausgabe:

{
    'qualified_students': {'S123': 88.33, 'S125': 90.67}, 
    'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}

Probier es selbst

def transform_dataset(data):
    # Deine Lösung hier
    
    # Schritt 1: Berechne die Durchschnittsnote für jeden Schüler und filtere die Schüler heraus, die die Anforderungen erfüllen
    # (Schüler, deren Noten alle über 70 liegen)
    
    # Schritt 2: Erstelle eine Übersicht der Fächer, die von den Schülern belegt wurden, die die Anforderungen erfüllen
    
    # Schritt 3: Gib das endgültige Dictionary mit qualified_students und subject_summary zurück
    pass

Alle Lektionen in Logik und Ablaufsteuerung

Übe selbstständig: Online-Python-Compiler