Menu
Coddy logo textTech

Daten-Transformer

Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 78 von 78.

challenge icon

Aufgabe

Schwer

Erstellen Sie eine Funktion namens transform_dataset, die eine Liste von Datensätzen von Studenten zur Analyse verarbeitet.

Jeder Datensatz ist ein Dictionary, das Folgendes enthält:

  • student_id: Eine eindeutige Kennung für den Studenten
  • grades: Eine Liste von numerischen Noten
  • subjects: Eine Liste von Fächern, die der Student belegt

Ihre Funktion sollte:

  1. Die Durchschnittsnote für jeden Studenten berechnen
  2. Nur Studenten einbeziehen, bei denen alle Noten über 70 liegen (qualifizierte Studenten) - Sie sollten Pythons all()-Funktion verwenden, um diese Bedingung zu prüfen
  3. Eine Zusammenfassung der von qualifizierten Studenten belegten Fächer erstellen und zählen, wie viele qualifizierte Studenten jedes Fach belegen
  4. Ein Dictionary mit zwei Schlüsseln zurückgeben:
    • qualified_students: Ein Dictionary, das Student-IDs auf ihre Durchschnittsnote abbildet (gerundet auf 2 Dezimalstellen)
    • subject_summary: Ein Dictionary, das Fächer auf die Anzahl der qualifizierten Studenten abbildet, die dieses Fach belegen

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

Beispiel Eingabe:

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

Beispiel Ausgabe:

{
    '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 Logic & Flow