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



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

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

לפני שנתקדם, בואו נסתכל על התוכן:





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

מהן פונקציות map (), filter () והפחתה () ב- Python?

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



פונקציית map ():

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

כיצד ליצור עותק עמוק בג'אווה - -

תחביר:

מפה (פונקציה, iterables)



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

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

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

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

דוגמא:

def newfunc (a): להחזיר a * a x = map (newfunc, (1,2,3,4)) #x הוא הדפסת אובייקט המפה (x) הדפס (set (x))

תְפוּקָה:

{16, 1, 4, 9}

כפי שאתה יכול לראות, x הוא אובייקט מפה. פלט החלק הבא מציג את פונקציית המפה שלוקחת את newfunc () כפרמטר שלה ואז היא מחילה את a * a על כל הניתנים החוזרים. כתוצאה מכך, ערכי כל הניתנים לחזרה מוכפלים בעצמם ומוחזרים.

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

דוגמא:

def newfunc (a): להחזיר a * a x = מפה (newfunc, (1,2,3,4)) #x הוא הדפסת אובייקט המפה (x) הדפס (רשימה (x))

תְפוּקָה:

[1, 4, 9, 16]

באפשרותך להעביר יותר מרשימת פרמטרים אחת. לדוגמה:

דוגמא:

def func (a, b): להחזיר a + b a = מפה (func, [2, 4, 5], [1,2,3]) הדפס (a) הדפס (tuple (a))

תְפוּקָה:

(3, 6, 8)

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

פונקציות למבדה במפה ():

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

דוגמא:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (מפה (lambda x: x + 3, tup)) הדפס (newtuple)

תְפוּקָה:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

הפלט שלעיל הוא תוצאה של החלת הביטוי למבדה (x + 3) על כל פריט שנמצא בטופלה.

פונקציית המסנן ():

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

תחביר:

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

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

דוגמא:

def func (x): אם x> = 3: החזר x y = filter (func, (1,2,3,4)) הדפס (y) הדפס (רשימה (y))

תְפוּקָה:

[3. 4]

כפי שאתה יכול לראות, y הוא אובייקט המסנן והרשימה היא רשימה של ערכים שנכונים לתנאי (x> = 3).

שימוש במבדה בתוך המסנן ():


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

דוגמא:

y = פילטר (lambda x: (x> = 3), (1,2,3,4)) הדפס (רשימה (y))

תְפוּקָה: [3. 4]

הקוד הנ'ל מייצר את אותה פלט כמו הפונקציה הקודמת.

פונקציית הצמצום ():

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

צמצם-מפה צמצם פילטר-אדוריקה

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

תחביר:

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

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

דוגמא:

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

תְפוּקָה: 187

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

ניתן להשתמש בפונקציות המפה (), המסנן () והפחתת () בפייתון זה עם זה.

בעזרת פונקציות map () מסננים () ומצמצמים () זה עם זה:

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

בואו ננסה להעביר תחילה את פונקציית המסנן () כפרמטר לפונקציית map ().

באמצעות פילטר () במפה ():

הקוד המופיע למטה בודק תחילה שהמצב (x> = 3) אמיתי לגבי החזרות. לאחר מכן, הפלט ממופה באמצעות פונקציית map ().

דוגמא:

c = מפה (lambda x: x + x, פילטר (lambda x: (x> = 3), (1,2,3,4))) הדפס (רשימה (c))

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

אם אתה מסנן מספרים שלמים הגדולים או שווים ל- 3 מהטופלה הנתונה, תקבל [3,4] כתוצאה מכך. ואז אם אתה ממפה את זה בתנאי (x + x), תקבל [6,8], שזה הפלט.

שימוש במפה () בתוך המסנן ():


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

דוגמא:

c = פילטר (lambda x: (x> = 3), מפה (lambda x: x + x, (1,2,3,4))) # lambda x: (x> = 3) הדפס (רשימה (c) )

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

שימוש במפה () ומסנן () בתוך צמצום ():

תפוקת הפונקציות הפנימיות מצטמצמת בהתאם למצב המסופק לפונקציית הפחתה ().

דוגמא:

להתחיל עם סטודיו חזותי
d = צמצם (lambda x, y: x + y, מפה (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) הדפס (d)

תְפוּקָה: 14

הפלט הוא תוצאה של [6,8] שהיא התוצאה של פונקציות המפה הפנימיות () והפילטר ().

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

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

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