Menu
Coddy logo textTech

Przekształcanie danych

Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 78 z 78.

challenge icon

Wyzwanie

Trudny

Utwórz funkcję o nazwie transform_dataset, która przetwarza listę rekordów studentów na potrzeby analizy.

Każdy rekord jest słownikiem zawierającym:

  • student_id: Unikalny identyfikator studenta
  • grades: Lista ocen liczbowych
  • subjects: Lista przedmiotów, na które uczęszcza student

Twoja funkcja powinna:

  1. Obliczać średnią ocen każdego studenta
  2. Uwzględniać tylko studentów, którzy mają wszystkie oceny powyżej 70 (zakwalifikowanych studentów) — do sprawdzenia tego warunku użyj funkcji all() języka Python
  3. Tworzyć podsumowanie przedmiotów, na które uczęszczają zakwalifikowani studenci, zliczając, ilu zakwalifikowanych studentów uczęszcza na każdy przedmiot
  4. Zwracać słownik z dwoma kluczami:
    • qualified_students: Słownik mapujący identyfikatory studentów na ich średnią ocen (zaokrągloną do 2 miejsc po przecinku)
    • subject_summary: Słownik mapujący przedmioty na liczbę zakwalifikowanych studentów, którzy na nie uczęszczają

Uwaga: Funkcja all() w języku Python zwraca True tylko wtedy, gdy wszystkie elementy w iterowalnym obiekcie mają wartość true. Na przykład all(grade > 70 for grade in grades) zwróci True tylko wtedy, gdy każda ocena jest wyższa niż 70.

Przykładowe dane wejściowe:

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

Przykładowe dane wyjściowe:

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

Spróbuj swoich sił

def transform_dataset(data):
    # Tu wpisz swoje rozwiązanie
    
    # Krok 1: Oblicz średnią ocen każdego ucznia i wybierz uczniów spełniających kryteria
    # (uczniów, których wszystkie oceny są wyższe niż 70)
    
    # Krok 2: Utwórz podsumowanie przedmiotów, na które uczęszczają uczniowie spełniający kryteria
    
    # Krok 3: Zwróć końcowy słownik zawierający qualified_students i subject_summary
    pass

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online