מהן פונקציות למבדה וכיצד להשתמש בהן?



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

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

אז בואו נתחיל :)





מדוע להשתמש בפונקציות למבדה של פייתון?


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

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



מהן פונקציות למבדה של פייתון?


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

עכשיו שאתה מודע למה מתייחסות פונקציות אנונימיות אלה, הבה נתקדם הלאה כדי לראות כיצד אתה כותב פונקציות Python Lambda אלה.

כיצד לכתוב פונקציות למבדה בפייתון?

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



תחביר:

טיעוני למבדה: ביטוי

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

דוגמא:

למבדה: 'ציין את המטרה'

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

דוגמא:

למבדה אאחד: “ציין את השימוש ב-אחד'

הנה, למבדה לוקח קלט אחד שהוא aאחד.

ליהוק כפול ל- int בג'אווה

באופן דומה, אתה יכול לקבל lambda aאחד, ל2, ל3..לנ.

בואו ניקח כמה דוגמאות כדי להדגים זאת:

דוגמה 1:

a = lambda x: x * x הדפסה (a (3))

תְפוּקָה: 9

דוגמא 2:

a = lambda x, y: x * y הדפסה (a (3,7))

תְפוּקָה: עשרים ואחת

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

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

כיצד פונקציות אנונימיות מקטינות את גודל הקוד?

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

כל פונקציה רגילה בפייתון מוגדרת באמצעות a def מילת המפתח כדלקמן:

תחביר:

def function_name (פרמטרים):
הצהרות)

כפי שאתה יכול לראות, כמות הקוד הנדרשת לפונקציה למבדה קטנה למדי מזו של פונקציות רגילות.

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

דוגמא:

def my_func (x): החזר x * x הדפס (my_func (3))

תְפוּקָה: 9

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

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

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

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

פונקציות למבדה של פייתון בתוך פונקציות המוגדרות על ידי המשתמש:

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

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

מה זה אפאצ'י ניצוץ לעומת האדופ

דוגמא:

def new_func (x): להחזיר (lambda y: x + y) t = new_func (3) u = new_func (2) הדפס (t (3)) הדפס (u (3))

תְפוּקָה:

6
5
כפי שאתה יכול לראות, בדוגמה שלמעלה, פונקציית lambda שנמצאת בתוך new_func נקראת בכל פעם שאנחנו משתמשים ב- new_func (). בכל פעם נוכל להעביר ערכים נפרדים לוויכוחים.

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

כיצד להשתמש בפונקציות אנונימיות בתוך פילטר (), מפה () וצמצום ():

פונקציות אנונימיות בתוך לְסַנֵן():

לְסַנֵן():

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

התחביר של פונקציה זו הוא:

תחביר:

פילטר (פונקציה, ניתן לחזרה)

שקול כעת את הדוגמה הבאה:

דוגמא:

my_list = [2,3,4,5,6,7,8] new_list = list (פילטר (lambda a: (a / 3 == 2), my_list)) הדפס (new_list)

תְפוּקָה: [6]

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

תמונה כיצד למזג נתונים

מַפָּה():

פונקציית map () בפייתון היא פונקציה שמיישמת פונקציה נתונה על כל הניתנים לחזרה ומחזירה רשימה חדשה.

תחביר:

מפה (פונקציה, ניתן לחזרה)

בואו ניקח דוגמא כדי להדגים את השימוש בפונקציות למבדה בפונקציה map ():

דוגמא:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

תְפוּקָה:

[נכון, נכון, נכון, נכון, שקר, נכון, נכון]

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

לְהַפחִית():

הפונקציה reduc () משמשת להחלת פונקציה אחרת על רשימת אלמנטים המועברים אליה כפרמטר ומחזירה לבסוף ערך יחיד.

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

תחביר:

להפחית (פונקציה, רצף)

דוגמא:

מיבוא פונקציות לצמצם להפחית (למבדה a, b: a + b, [23,21,45,98])

הדוגמה לעיל מתוארת בתמונה הבאה:

צמצום-פיתון למבדה-אדוריקה

תְפוּקָה: 187

הפלט מראה בבירור כי כל מרכיבי הרשימה הם הוסיף ללא הרף להחזיר את התוצאה הסופית.

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

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג 'פייתון למבדה' ונחזור אליך בהקדם האפשרי.

כדי לקבל ידע מעמיק על Python יחד עם היישומים השונים שלו, אתה יכול להירשם לשידור חי עם תמיכה 24/7 וגישה לכל החיים.