Menu
Coddy logo textTech

Veri Dönüştürücü

Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 78 / 78.

challenge icon

Görev

Zor

Analiz için bir öğrenci kayıtları listesini işleyen transform_dataset adında bir fonksiyon oluşturun.

Her kayıt şunları içeren bir sözlüktür:

  • student_id: Öğrenci için benzersiz bir tanımlayıcı
  • grades: Sayısal notlardan oluşan bir liste
  • subjects: Öğrencinin aldığı derslerin bir listesi

Fonksiyonunuz şunları yapmalıdır:

  1. Her öğrenci için ortalama notu hesaplayın
  2. Yalnızca tüm notları 70'in üzerinde olan öğrencileri dahil edin (nitelikli öğrenciler) - bu koşulu kontrol etmek için Python'un all() fonksiyonunu kullanmalısınız
  3. Nitelikli öğrenciler tarafından alınan derslerin bir özetini oluşturun ve her bir dersi kaç nitelikli öğrencinin aldığını sayın
  4. İki anahtarlı bir sözlük döndürün:
    • qualified_students: Öğrenci kimliklerini ortalama notlarıyla (virgülden sonra 2 basamağa yuvarlanmış) eşleyen bir sözlük
    • subject_summary: Dersleri, o dersi alan nitelikli öğrenci sayısıyla eşleyen bir sözlük

Not: Python'daki all() fonksiyonu, yalnızca yinelenebilir nesnedeki tüm öğeler doğruysa True döndürür. Örneğin, all(grade > 70 for grade in grades) ifadesi yalnızca her not 70'in üzerindeyse True döndürecektir.

Örnek Girdi:

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

Örnek Çıktı:

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

Kendin dene

def transform_dataset(data):
    # Çözümünüz buraya
    
    # Adım 1: Her öğrenci için ortalama notu hesaplayın ve nitelikli öğrencileri filtreleyin
    # (tüm notları 70'in üzerinde olan öğrenciler)
    
    # Adım 2: Nitelikli öğrenciler tarafından alınan derslerin bir özetini oluşturun
    
    # Adım 3: qualified_students ve subject_summary içeren nihai sözlüğü döndürün
    pass

Logic & Flow bölümündeki tüm dersler