Veri Dönüştürücü
Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 78 / 78.
Görev
ZorAnaliz 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 listesubjects: Öğrencinin aldığı derslerin bir listesi
Fonksiyonunuz şunları yapmalıdır:
- Her öğrenci için ortalama notu hesaplayın
- 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 - Nitelikli öğrenciler tarafından alınan derslerin bir özetini oluşturun ve her bir dersi kaç nitelikli öğrencinin aldığını sayın
- İ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üksubject_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
passLogic & Flow bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary Sıralayıcı