שימוש בזמן בהבנת הרשימה בפייתון יכול להקל עליך על פעולות רשימת איטרטיבי. בנוסף להיותו שורה אחת, הוא קריא יותר ומבוצע בצורה יעילה יותר.
עם זאת, אתה עלול להתאמץ אם אתה לא יודע להשתמש בו. זה יכול אפילו להיות מתסכל יותר אם אינך יודע היכן ליישם אותו בקוד שלך. כאן נראה לך כיצד להשתמש בהבנת רשימה בפייתון עם כמה דוגמאות מהחיים האמיתיים.
מהי הבנת רשימה בפייתון ואיך זה עובד?
קל ליצור רשימת פריטים עם Python. עם זאת, המשימה יכולה להיות מעט מייגעת כאשר אתה צריך ליצור רשימה של ערכים או פריטים מפעולות מתמטיות או מחרוזות. זה כאשר שימוש בהבנת רשימה יכול להיות שימושי.
יתרון בשימוש בהבנת הרשימה הוא שאתה יכול לבצע מספר פעולות ברשימה אחת.
לעומת זאת, הוא יוצר פריטים חדשים ומצרף אותם לרשימה ריקה שהיא מצהירה עליה באופן אוטומטי. אז במקום להכין רשימה ריקה באופן ידני ולהוסיף אליה באמצעות א ל לולאה, הבנת הרשימה של פייתון מאפשרת לך לעשות זאת באופן אוטומטי מבלי שתטרח כיצד עוברת הרשימה החדשה.
המונח "הבנת רשימה" מקורו בעובדה שכל הפעולות נמצאות ברשימת פיתון שהוקצתה למשתנה בשם. כפי שהצהרנו קודם, זה מאפשר לך לבצע פעולות ספציפיות בשורת קוד אחת. לאחר מכן הוא מוסיף את הפלט לרשימה חדשה.
בסופו של דבר, אתה יכול גם להשתמש בפלט של הבנת רשימה למטרות אחרות. הסיבה לכך היא שהוא מערם ביטויים במשתנים נפרדים. כך שתוכל להתייחס אליהם בהמשך.
למשל, יכול להיות שאתה גירוד אתר עם BeautifulSoup. נניח שבכוונתך לקבל את האתר של כל הפריטים ומחיריהם.
לאחר מכן תחליט לשים את הנתונים הגרודים בקובץ CSV או בקובץ Excel. הנוהג האידיאלי הוא לגרד את שם כל הפריטים ואת מחיריהם ולמקם את שניהם בעמודות נפרדות. עם זאת, שימוש בהבנת הרשימה, במקרה זה, מבטיח שיש לך את הנתונים שנגרדו במשתנים ייעודיים. לאחר מכן תוכלו להמיר משתנים כאלה ל- Python DataFrame מאוחר יותר.
עיין בדוגמה הבאה:
מוצרים = [i.text for i ב- bs.find_all ('תגי שם')]
מחיר = [i.text for i ב- bs.find_all ('תגי מחיר')]
לאחר שתקבל את המשתנים הלולאתיים, תוכל לשים אותם בעמודות נפרדות ב- DataFrame באמצעות פנדות של פייתון.
כיצד ליצור ולהשתמש בהבנת רשימה בפייתון
ה ל לולאה היא איטרטור חיוני בהבנת הרשימה. באופן כללי, הבנת רשימה בפייתון נוקטת בפורמט זה:
ComprehensionVariable = [ביטוי לפריטים ברשימה]
הַדפָּסָה הבנה משתנה מוציא את התוצאה של הקוד הנ"ל כרשימה.
עם זאת, היזהר לא לבלבל בין הבנת רשימה לבין פתוחה ל לוּלָאָה.
לדוגמא, בואו השתמש בלולאה פתוחה כדי לקבל רשימה של כל הכפולות של שלוש בין 1 ל -30:
myList = []
עבור אני בטווח (1, 11):
myList.append (i * 3)
הדפס (myList)
פלט: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
כדי להשוות בין השניים, בואו נעשה את אותו הדבר באמצעות הבנת רשימה:
multiplesOf3 = [i * 3 עבור i בטווח (1, 11)]
הדפס (multiplesOf3)
פלט = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
אתה יכול להשתמש בהבנת רשימה עם הצהרות מותנות גם כן. קוד הדוגמה שלהלן מדפיס את כל המספרים המוזרים בין 1 ל -10:
oddNumbers = [i עבור i בטווח (1, 11) אם לא i% 2 == 2]
הדפס (oddNumbers)
פלט = [1, 3, 5, 7, 9]
כעת, בואו נכתוב את הקוד לעיל באמצעות קוד פתוח ל לוּלָאָה:
myList = []
עבור אני בטווח (1, 11):
אם לא אני% 2 == 0:
myList.append (i)
הדפס (myList)
פלט: [1, 3, 5, 7, 9]
קָשׁוּר: כיצד להוסיף רשימה בפייתון
הבנת רשימה מקבלת גם הצהרות מקוננות אם:
oddNumbers = [i עבור i בטווח (1, 11) אם לא i% 2 == 0 אם i <4]
הדפס (oddNumbers)
פלט: [1, 3]
זה גם לוקח מקונן ל לוּלָאָה:
someNums = [[i * 2 עבור i בטווח (1, 3)] עבור _ בטווח (4)]
הדפס (someNums)
אתה יכול גם להיות מקונן רגיל ל לולאה בהבנת רשימה:
someNums = [i * 2 עבור i בטווח (1, 3) עבור k בטווח (4)]
אתה יכול לתפעל מחרוזות גם עם הבנת רשימת Python. בואו נסתכל על הבנת מונה נגד מילים להלן:
word = ["זהו מדריך להבנת רשימת פיתונים"]
wordCounter = [i.count ('') + 1 עבור i במילה]
הדפס (wordCounter)
תפוקה: 7
הבנת רשימה יכולה גם לקבל פונקציה המבצעת פעולה ספציפית. בואו נכניס פונקציה של מכפיל שמקבלת מספרים זוגיים בהבנת הרשימה כדי לראות איך זה עובד:
מספרים = [4, 7, 8, 15, 17, 10]
מכפיל def (n):
מרובה = n * 2
להחזיר מספר
multipleEven = [מכפיל (i) עבור i במספרים אם i% 2 == 0]
הדפס (מרובה אפילו)
פלט: [8, 16, 20]
אתה עדיין יכול לכתוב את הקוד לעיל בפונקציה אחת מבלי להשתמש בהבנה. אבל הבנת רשימה שימושית כאשר אתה צריך לבצע מספר איטרציות ולמקם כל אחד מהם במשתנים נפרדים.
לדוגמה, באפשרותך לבצע פעולה נוספת ב- נ ויש להם משתנה ייעודי לכך. בואו ונשנה את ההבנה שלמעלה כדי ליצור מספרים זוגיים מאלה מוזרים:
multipleEvenFromOdds = [מכפיל (i) עבור i במספרים אם לא i% 2 == 0]
הדפס (multipleEvenFromOdds)
פלט: [14, 30, 34]
מילון והבנות קבועות
בנוסף להבנת הרשימה, פייתון מציע גם מילון ופונקציונליות של הבנת סט.
בדוק את הבנת המילון לדוגמא למטה כדי לראות כיצד היא פועלת:
תואם = {i: i * 2 עבור i בטווח (10) אם לא i% 2 == 0}
הדפס (corr)
פלט: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
הקוד שלמעלה מחרטט ברשימת המספרים שבין 1 ל 9 והופך אותם למפתחות. לאחר מכן הוא אומר לפייתון להכפיל כל מקש בשניים. לבסוף, הוא מציג את תוצאות הפעולה כערכים המתאימים לכל מפתח במערך המתקבל.
קָשׁוּר: כיצד עובדים מערכים ורשימות בפייתון
הבנת קבוצה דומה קצת להבנת רשימה. הנה דוגמה להבנה קבועה:
מספרים = {i ** (2) עבור i בטווח (10) אם i% 4 == 0}
הדפס (מספרים)
פלט: {0, 16, 64}
עם זאת, שלא כמו הבנת רשימה, הבנת קבוצות מסירה כפילויות:
מספרים = {i עבור i בטווח (20) אם i% 2 == 1 עבור k בטווח (10) אם k% 2 == 1}
הדפס (מספרים)
פלט: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
אתה יכול לנסות את הקוד לעיל באמצעות הבנת רשימה כדי לראות כיצד הם נבדלים.
האם אתה יכול להשתמש בהבנת רשימות בכל פעם?
בדקנו דוגמאות שונות להבנת הרשימה והיכן תוכלו להשתמש בהן. עם זאת, כמו כל שיטת פיתון אחרת, מקרה השימוש של הבנת רשימה תלוי בבעיה הספציפית שברצונך לפתור. לכן עליך להשתמש בו רק אם הוא אידיאלי לבעיה הספציפית שברצונך לפתור.
אחת המטרות של הבנת הרשימה היא לפשט את הקוד שלך ולהפוך אותו לקריא יותר. לכן, הקפד להימנע ממורכבות כשאתה מתמודד עם זה. למשל, הבנת פיתון ארוכה יכולה להיות מורכבת לקריאה. זה מביס את מטרתו.
הנה כל מה שאתה צריך לדעת על השימוש בתכונה המדהימה הזו של Python שתגביר את הפרודוקטיביות שלך ואת הקריאה בקוד בין לילה.
- תִכנוּת
- פִּיתוֹן
Idowu נלהב מכל דבר חכם וטכנולוגיה ופרודוקטיביות. בזמנו הפנוי הוא משחק בקידוד ועובר ללוח השחמט כשמשעמם לו, אבל הוא גם אוהב להתנתק מהשגרה מדי פעם. התשוקה שלו להראות לאנשים את הדרך סביב הטכנולוגיה המודרנית מניע אותו לכתוב יותר.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
צעד אחד נוסף !!!
אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.