Menu
CoddyTech

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

Coddy'nin Python Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 78 / 78.

challenge icon

Görev

Zor

Analiz için öğrenci kayıtlarından oluşan bir listeyi işleyen transform_dataset adlı bir fonksiyon oluşturun.

Her kayıt aşağıdakileri 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ığı derslerden oluşan bir liste

Fonksiyonunuz şunları yapmalıdır:

  1. Her öğrencinin not ortalamasını hesaplamak
  2. Yalnızca tüm notları 70'in üzerinde olan öğrencileri (koşulları karşılayan öğrenciler) dahil etmek - bu koşulu kontrol etmek için Python'ın all() fonksiyonunu kullanmalısınız
  3. Koşulları karşılayan öğrencilerin aldığı derslerin özetini oluşturmak ve her dersi kaç koşulları karşılayan öğrencinin aldığını saymak
  4. İki anahtarı olan bir sözlük döndürmek:
    • qualified_students: Öğrenci kimliklerini not ortalamalarıyla eşleyen bir sözlük (2 ondalık basamağa yuvarlanmış)
    • subject_summary: Dersleri, o dersi alan koşulları karşılayan öğrenci sayısıyla eşleyen bir sözlük

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

Ö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 yazın
    
    # Adım 1: Her öğrencinin not ortalamasını hesaplayın ve koşulları sağlayan öğrencileri filtreleyin
    # (tüm notları 70'in üzerinde olan öğrenciler)
    
    # Adım 2: Koşulları sağlayan öğrencilerin aldığı derslerin özetini oluşturun
    
    # Adım 3: qualified_students ve subject_summary içeren son sözlüğü döndürün
    pass

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi