Menu
Coddy logo textTech

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 Dictionary mit:

  • 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 Pythons Funktion all() verwenden, um diese Bedingung zu prüfen
  3. Eine Zusammenfassung der von qualifizierten Schülern belegten Fächer erstellen und zählen, wie viele qualifizierte Schüler jedes Fach belegen
  4. Ein Dictionary mit zwei Schlüsseln zurückgeben:
    • qualified_students: Ein Dictionary, das Schüler-IDs ihren Durchschnittsnoten (auf 2 Dezimalstellen gerundet) zuordnet
    • subject_summary: Ein Dictionary, das Fächer der Anzahl qualifizierter Schüler zuordnet, die dieses Fach belegen

Hinweis: Die Funktion all() in Python gibt nur dann True zurück, wenn alle Elemente im Iterable wahr sind. Beispielsweise 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):
    # Ihre Lösung hier
    
    # Schritt 1: Durchschnittsnote für jeden Schüler berechnen und qualifizierte Schüler filtern
    # (Schüler mit allen Noten über 70)
    
    # Schritt 2: Eine Zusammenfassung der von qualifizierten Schülern belegten Fächer erstellen
    
    # Schritt 3: Das finale Dictionary mit qualified_students und subject_summary zurückgeben
    pass

Alle Lektionen in Logik und Ablaufsteuerung

Übe selbstständig: Online-Python-Compiler