כיצד למיין רשימות בפייתון

How Sort Lists Python



מאמר זה יכסה מדריך למיון רשימות ב- Python. אובייקט רשימת פייתון הוא אוסף של פריט אחד או יותר המופרדים בפסיקים. זהו אובייקט חוזר וניתן לגשת לרכיביו על ידי חזרה על הרשימה באמצעות הצהרות לולאה וביטויים אחרים. אתה יכול למיין רשימת Python באמצעות מיון ושיטות מיון, שתיהן מוסברות במאמר. כל דוגמאות הקוד במאמר זה נבדקות עם Python 3.9.5 באובונטו 21.04.

שיטת מיון

שיטת המיון ממיינת רשימה במקום. במילים אחרות, הוא ישנה את אובייקט הרשימה שאתה עומד למיין ולסדר מחדש את האלמנט שלו. אם אינך דורש את הרשימה המקורית ולא אכפת לך שהרשימה תשנה את סדר האלמנטים שלה במקום, זוהי השיטה היעילה ביותר בפייתון למיון רשימה. שקול דוגמה זו:







ה= [2, 8, 6, 4]

ה.סוג()

הדפס (ה)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:



[2, 4, 6, 8]

המשפט הראשון במדגם הקוד מגדיר רשימה. לאחר מכן, שיטת המיון נקראת ברשימה. בעת הדפסת הרשימה, תוכל לראות כי סדר הרשימה המקורית השתנה.



כברירת מחדל, פייתון ממיין רשימה בסדר עולה. אם ברצונך למיין רשימה בסדר יורד, השתמש בשיטה הפוכה, כפי שמוצג בדוגמת הקוד להלן:





ה= [2, 8, 6, 4]

ה.סוג()

ה.לַהֲפוֹך()

הדפס (ה)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

[8, 6, 4, 2]

השיטה ההפוכה גם משנה רשימת Python במקום מבלי ליצור רשימה חדשה.



אם הרשימה שלך מכילה אלמנטים של מחרוזות, קריאה לשיטת המיון עליה תסדר אותה לפי האלף -בית היכן שהסמלים והמספרים מסודרים תחילה. תסתכל על דוגמת הקוד להלן:

ה= ['s', 'ל', 'עם', '4', '#']

ה.סוג()
הדפס (ה)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

['#', '4', 'ל', 's', 'עם']

תוכל גם להשתמש בשיטה ההפוכה ברשימה המכילה רכיבי מחרוזת.

ה= ['s', 'ל', 'עם', '4', '#']

ה.סוג()

ה.לַהֲפוֹך()

הדפס (ה)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

['עם', 's', 'ל', '4', '#']

שיטה ממוינת

השיטה הממוינת ממיינת גם רשימת פייתון, באותו אופן כמו שיטת המיון. עם זאת, במקום לשנות את הרשימה המקורית, היא מחזירה רשימה חדשה כך שהרשימה המקורית שלך לא תיפגע במקרה שתרצה לעשות בה שימוש חוזר. שקול את הקוד להלן:

רשימה 1= ['s', 'ל', 'עם', '4', '#']

רשימה 2= מְמוּיָן(רשימה 1)

הדפס (רשימה 1,רשימה 2)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

['s', 'ל', 'עם', '4', '#'] ['#', '4', 'ל', 's', 'עם']

אתה יכול לראות בפלט שרשימה 1 שלמה ולרשימה 2 יש כעת אלמנטים ממוינים. תוכל גם להשתמש בשיטה ההפוכה ברשימה 2 כדי לשנות את שיטת ההזמנה שלה.

טיעון הפוך

אתה יכול להשתמש בארגומנט ההפוך כחלופה לפונקציה הפוכה הן בשיטות המיון והן במיון כדי לקבל רשימה ממוינת בסדר יורד. רק ספק לו ערך אמיתי כדי לשנות את סדר המיון:

רשימה 1= ['s', 'ל', 'עם', '4', '#']

רשימה 2= מְמוּיָן(רשימה 1,לַהֲפוֹך=נָכוֹן)

הדפס (רשימה 1,רשימה 2)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

['s', 'ל', 'עם', '4', '#'] ['עם', 's', 'ל', '4', '#']

שימוש בפונקציית מפתח לציון ההיגיון שלך למיון רכיבי רשימה

הן בשיטות המיון והן במיון, באפשרותך לציין ארגומנט מפתח נוסף שלוקח כערך פונקציה ניתנת להתקשרות. ניתן להקצות לארגומנט מפתח זה פונקציה קיימת ממודולי Python מובנים או שתוכל לספק לפונקציה משלך לוגיקה מותאמת אישית. תסתכל על דוגמת הקוד להלן:

רשימה 1= ['אבגדה', 'xyz', 'ijkl']

רשימה 2= מְמוּיָן(רשימה 1,מַפְתֵחַ=len)

הדפס (רשימה 1,רשימה 2)

רשימה 1.סוג(מַפְתֵחַ=len)

הדפס (רשימה 1)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

['אבגדה', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'אבגדה']

['xyz', 'ijkl', 'אבגדה']

מדגם הקוד ממחיש שימוש בארגומנט מפתח הן בשיטות המיון והן במיון. הפונקציה המסופקת לה נקראת len אשר קובעת את אורך אובייקט מחרוזת או חוזר. הפונקציה או ההתקשרות צריכה במקור לקחת רק טענה אחת. אתה מקצה אותו לארגומנט המפתח מבלי להשתמש בסוגרים. הפונקציה הניתנת להתקשרות המסופקת לארגומנט המפתח נקראת על כל רכיב ברשימה. הערכים המוחזרים משיטה ניתנת להתקשרות משמשים לאחר מכן כמפתח למיון הרשימה. מכאן שאספקת פונקציית הלן לטיעון המפתח ממיין אלמנטים של רשימה בסדר אורכם, כלומר מהקצר לארוך ביותר. כפי שצוין קודם לכן, תוכל תמיד להשתמש בשיטה ההפוכה כדי להפוך את שיטת המיון.

תוכל גם להשתמש בפונקציה מותאמת אישית משלך או בפונקציות lambda חד-קויים המחזירות את הערך של ביטוי יחיד. תסתכל על דוגמת הקוד שלהלן שבה רשימה כוללת מספר רב של מלאי עדכני של ארגזי פירות:

רשימה 1= [('מנגו', 99), ('תפוז', 51), ('בננה', 76)]

רשימה 1.סוג(מַפְתֵחַ=למבדהמלאי: מלאי[1])

הדפס (רשימה 1)

לאחר הפעלת מדגם הקוד לעיל, אתה אמור לקבל את הפלט הבא:

[('תפוז', 51), ('בננה', 76), ('מנגו', 99)]

פונקציית ה- lambda מסופקת עם מלאי ארגומנטים, שהוא כל רכיב ברשימה בצורת טופל. לאחר מכן הוא מחזיר את האלמנט השני של כל חבילה כמפתח (באינדקס 1). פונקציית המיון ממיינת את כל הזוגות לפי האלמנט השני שלה בסדר עולה. תוכל גם להשתמש בפונקציה ההפוכה או בארגומנט ההפוך על התוצאה הסופית כדי להפוך את סדר המיון.

סיכום

אלה כמה דרכים שבהן תוכל למיין את התוכן של רשימה חוזרת ב- Python. טיעון המפתח מאפשר לך לכתוב לוגיקת מיון מותאמת אישית משלך, המתאימה ליישומים שעשויים להיות בעלי צרכים שונים מאשר שיטות המיון המובנות.