פונקציית המיפוי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 72 מתוך 78.
הפונקציה map() מקבלת שני דברים עיקריים:
- פונקציה (שמכילה הוראות מה לעשות)
- רצף של פריטים (כמו רשימה או אוסף כלשהו של איברים)
לאחר מכן היא מחילה את הפונקציה על כל פריט ברצף שלך, אחד אחד, ומחזירה לך את כל התוצאות.
לדוגמה:
def square(n):
return n * n
numbers = [1, 2, 3, 4, 5] # זו רק רשימה של מספרים
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# פלט: [1, 4, 9, 16, 25]מה קרה כאן:
- יש לנו רשימה של מספרים: [1, 2, 3, 4, 5]
- הפונקציה
map()מקבלת כל מספר, אחד בכל פעם - היא מעבירה כל מספר דרך הפונקציה
squareשלנו - היא אוספת את כל התוצאות לפי הסדר
אפשר לחשוב על זה כמו על פס ייצור:
- המספר 1 נכנס → פונקציית הריבוע הופכת אותו ל־1
- המספר 2 נכנס → פונקציית הריבוע הופכת אותו ל־4
- המספר 3 נכנס → פונקציית הריבוע הופכת אותו ל־9 וכן הלאה...
אפשר גם להשתמש בפונקציית lambda במקום להגדיר פונקציה נפרדת:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# פלט: [1, 4, 9, 16, 25]הפונקציה map() פועלת עם כל אוסף של פריטים — לא רק מספרים. אלה יכולות להיות מחרוזות או כל סוג אחר של נתונים שתרצו לעבד באותה הדרך.
אתגר
קלצרו פונקציה בשם convert_to_uppercase שמקבלת רשימה של מחרוזות strings כארגומנט. הפונקציה צריכה להשתמש בפונקציה map() יחד עם פונקציית lambda כדי להמיר כל מחרוזת ברשימה לאותיות גדולות. הפונקציה צריכה להחזיר רשימה שמכילה את המחרוזות באותיות גדולות.
נסו בעצמכם
def convert_to_uppercase(strings):
# השתמשו ב-map() עם פונקציית lambda כדי להמיר מחרוזות לאותיות רישיות
# החליפו את הרשימה הריקה שלהלן בביטוי הזה
uppercase_strings = []
# החזירו את רשימת המחרוזות באותיות רישיות
return list(uppercase_strings)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4יישום ספר אנשי קשר
הצגת התפריטהוספת איש קשר7קבוצות חלק 2
פעולות מתמטיות חלק 1פעולות מתמטיות חלק 2סיכום – חיפוש אוצרתת־קבוצות וקבוצות־עלמעבר על קבוצותסיכום – מעקב אחר טורניר8מנהל רישומי תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר Python אונליין