Menu
Coddy logo textTech

ממיר נתונים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 78 מתוך 78.

challenge icon

אתגר

קשה

צרו פונקציה בשם transform_dataset שמעבדת רשימה של רשומות תלמידים לצורך ניתוח.

כל רשומה היא מילון המכיל:

  • student_id: מזהה ייחודי של התלמיד
  • grades: רשימה של ציונים מספריים
  • subjects: רשימה של המקצועות שהתלמיד לומד

הפונקציה שלכם צריכה:

  1. לחשב את הציון הממוצע של כל תלמיד
  2. לכלול רק תלמידים שכל הציונים שלהם גבוהים מ־70 (תלמידים שעומדים בתנאים) - עליכם להשתמש בפונקציה all() של Python כדי לבדוק את התנאי הזה
  3. ליצור סיכום של המקצועות שלומדים התלמידים שעומדים בתנאים, ולספור כמה תלמידים שעומדים בתנאים לומדים כל מקצוע
  4. להחזיר מילון עם שני מפתחות:
    • qualified_students: מילון שממפה מזהי תלמידים לציון הממוצע שלהם (מעוגל ל־2 ספרות אחרי הנקודה העשרונית)
    • subject_summary: מילון שממפה מקצועות למספר התלמידים שעומדים בתנאים ולומדים את המקצוע

הערה: הפונקציה all() ב-Python מחזירה True רק אם כל האיברים באיטרטור הם true. לדוגמה, all(grade > 70 for grade in grades) תחזיר True רק אם כל הציונים גבוהים מ־70.

קלט לדוגמה:

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

פלט לדוגמה:

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

נסו בעצמכם

def transform_dataset(data):
    # הפתרון שלך כאן
    
    # שלב 1: חשבו את ממוצע הציונים של כל תלמיד וסננו את התלמידים שעומדים בתנאים
    # (תלמידים שכל הציונים שלהם גבוהים מ-70)
    
    # שלב 2: צרו סיכום של המקצועות שלמדו התלמידים שעומדים בתנאים
    
    # שלב 3: החזירו את המילון הסופי עם qualified_students ו-subject_summary
    pass

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Python אונליין