מיון נתונים ביעילות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 48 מתוך 78.
מיון הוא פעולה בסיסית במדעי המחשב, ו-Python מציעה כלים מובנים ועוצמתיים למיון יעיל של נתונים. הפונקציה העיקרית למיון היא sorted(), שבה אפשר להשתמש כדי למיין סוגים שונים של נתונים, כולל מספרים, מחרוזות ואובייקטים מורכבים יותר.
מיון בסיסי:
הפונקציה sorted() מקבלת אובייקט שניתן לעבור עליו (למשל, רשימה, tuple או set) כארגומנט ומחזירה רשימה חדשה המכילה את האיברים הממוינים. כברירת מחדל, היא ממיינת בסדר עולה.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# פלט: [1, 1, 2, 3, 4, 5, 6, 9]בדוגמה הזו, sorted() ממיינת את הרשימה numbers בסדר עולה.
מיון בסדר הפוך:
כדי למיין בסדר יורד, אפשר להשתמש בפרמטר reverse ולהגדיר אותו ל-True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# פלט: [9, 6, 5, 4, 3, 2, 1, 1]כאן, sorted() ממיינת את הרשימה numbers בסדר יורד.
מיון מחרוזות:
הפונקציה sorted() יכולה גם למיין מחרוזות לפי הסדר הלקסיקוגרפי שלהן (כלומר, הסדר שבו הן היו מופיעות במילון).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# פלט: ['apple', 'banana', 'cherry']בדוגמה הזו, sorted() ממיינת את הרשימה words בסדר אלפביתי.
מיון מותאם אישית באמצעות פונקציית מפתח:
לצורכי מיון מורכבים יותר, אפשר להשתמש בפרמטר key כדי לציין פונקציה שקובעת את סדר המיון. פונקציית key מוחלת על כל איבר לפני המיון, והערכים המוחזרים משמשים להשוואה.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# פלט: ['fig', 'kiwi', 'banana']במקרה זה, sorted() ממיינת את הרשימה words לפי האורך של כל מילה, תוך שימוש בפונקציה len() בתור key.
אתגר
קלכתבו תוכנית שמבצעת את משימות המיון הבאות באמצעות הפונקציה sorted():
- מיינו רשימה של מספרים בסדר עולה.
- מיינו את אותה רשימת מספרים בסדר יורד.
- מיינו רשימה של מחרוזות בסדר אלפביתי.
- מיינו את אותה רשימת מחרוזות לפי האורך שלהן.
נסו בעצמכם
# נתוני קלט התחלתיים
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# משימה 1: מיינו את המספרים בסדר עולה
# משימה 2: מיינו את המספרים בסדר יורד
# משימה 3: מיינו את המילים לפי סדר האלפבית
# משימה 4: מיינו את המילים לפי אורכן
# החליפו את 'None' בקוד שלכם עבור כל משימה
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# הדפיסו את התוצאות
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4יישום ספר אנשי קשר
הצגת התפריטהוספת איש קשר7קבוצות חלק 2
פעולות מתמטיות חלק 1פעולות מתמטיות חלק 2סיכום – חיפוש אוצרתת־קבוצות וקבוצות־עלמעבר על קבוצותסיכום – מעקב אחר טורניר8מנהל רישומי תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר Python אונליין