ממיר נתונים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 78 מתוך 78.
אתגר
קשהצרו פונקציה בשם transform_dataset שמעבדת רשימה של רשומות תלמידים לצורך ניתוח.
כל רשומה היא מילון המכיל:
student_id: מזהה ייחודי של התלמידgrades: רשימה של ציונים מספרייםsubjects: רשימה של המקצועות שהתלמיד לומד
הפונקציה שלכם צריכה:
- לחשב את הציון הממוצע של כל תלמיד
- לכלול רק תלמידים שכל הציונים שלהם גבוהים מ־70 (תלמידים שעומדים בתנאים) - עליכם להשתמש בפונקציה
all()של Python כדי לבדוק את התנאי הזה - ליצור סיכום של המקצועות שלומדים התלמידים שעומדים בתנאים, ולספור כמה תלמידים שעומדים בתנאים לומדים כל מקצוע
- להחזיר מילון עם שני מפתחות:
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כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4יישום ספר אנשי קשר
הצגת התפריטהוספת איש קשר7קבוצות חלק 2
פעולות מתמטיות חלק 1פעולות מתמטיות חלק 2סיכום – חיפוש אוצרתת־קבוצות וקבוצות־עלמעבר על קבוצותסיכום – מעקב אחר טורניר8מנהל רישומי תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר Python אונליין