ככה תקצרו את קוד הPython שלכם!

כתבה זו נכתבת בהנחה שלקוראים יש ידע בסיסי בפייתון , אם לא ממליץ לכם להתחיל ללמוד!

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

הפונקצייה map –

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

map( function , iterable )

פונקציית למדא:

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

אז קודם כל נראה את המבנה של פונקציית למדא:

lambda -some parameters- : expression

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

ולסיום דוגמה לשימוש בשתי הפונקציות – פונקציה שתעבור על רשימה ותכפיל את כל האיברים בה פי 2 :

הקוד
פלט הקוד

הסבר הקוד:

הגדרנו רשימה ובה הערכים מ1 ועד 4, לאחר מכן, שמרנו לתוך משתנה חדש את הפלט של הפעולה הבאה :

ביצענו את הפונקצייה map על הרשימה lst , הפונקציה שאותה ביקשנו מmap לבצע על הרשימה, היא פונקצייה שהגדרנו באותו הרגע , פונקצייה "חד פעמית" באמצעות המילה השמורה lambda , הפונקצייה לוקחת פרמטר x כלשהו, ומכפילה את ערכו פי 2 . בנוסף , המרנו את הפלט של map לסוג list , מכיוון שהפונקציה map מחזירה אובייקט מסוג map שלא כולל מתודת הדפסה ויש להמירו לטיפוס list. ** יש לציין שאת הקוד הנ"ל אפשר לכתוב בשורה אחת בלבד! פרסתי אותו על 3 שורות של קוד לנוחות הקוראים.

בואו נראה איך זה היה נראה ללא הכתיבה המקוצרת…

הקוד בכתיבה רגילה!
הקוד המקוצר בפריסה על שורה אחת בלבד!

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

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *