Menu
CoddyTech

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 uczniów na potrzeby analizy.

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

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

Twoja funkcja powinna:

  1. Obliczać średnią ocen dla każdego ucznia
  2. Uwzględniać tylko uczniów, których wszystkie oceny są wyższe niż 70 (zakwalifikowani uczniowie) — użyj funkcji all() w Pythonie, aby sprawdzić ten warunek
  3. Utworzyć podsumowanie przedmiotów, na które uczęszczają zakwalifikowani uczniowie, zliczając, ilu zakwalifikowanych uczniów uczęszcza na każdy przedmiot
  4. Zwrócić słownik z dwoma kluczami:
    • qualified_students: Słownik przyporządkowujący identyfikatory uczniów ich średniej ocenie (zaokrąglonej do 2 miejsc po przecinku)
    • subject_summary: Słownik przyporządkowujący przedmiotom liczbę zakwalifikowanych uczniów, którzy na nie uczęszczają

Uwaga: Funkcja all() w Pythonie zwraca True tylko wtedy, gdy wszystkie elementy w obiekcie iterowalnym są prawdziwe. 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 zestawienie przedmiotów, na które uczęszczają uczniowie spełniający kryteria
    
    # Krok 3: Zwróć słownik wynikowy zawierający qualified_students i subject_summary
    pass

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online