הבנת פונקציות המפה, הסינון וההפחתה של Python

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

הפונקציה map

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

תַחבִּיר

map(function, iterable)

דוּגמָה

נניח שאתה רוצה לריבוע כל מספר ברשימה. אתה יכול להשתמש ב-map כדי להשיג זאת:

# Define a function to square a number
def square(x):
    return x * x

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Apply the function to each item in the list
squared_numbers = map(square, numbers)

# Convert the result to a list and print
print(list(squared_numbers))  # Output: [1, 4, 9, 16, 25]

הפונקציה filter

הפונקציה filter משמשת לסינון אלמנטים מ-Iterable המבוסס על פונקציה שמחזירה True או False. רק האלמנטים שעבורם הפונקציה מחזירה True נכללים בתוצאה.

תַחבִּיר

filter(function, iterable)

דוּגמָה

לדוגמה, אם אתה רוצה לשמור רק את המספרים הזוגיים מרשימה, אתה יכול להשתמש ב-filter:

# Define a function to check if a number is even
def is_even(x):
    return x % 2 == 0

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Filter the list using the function
even_numbers = filter(is_even, numbers)

# Convert the result to a list and print
print(list(even_numbers))  # Output: [2, 4]

הפונקציה reduce

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

תַחבִּיר

from functools import reduce

reduce(function, iterable[, initializer])

דוּגמָה

לדוגמה, כדי למצוא את המכפלה של כל המספרים ברשימה, אתה יכול להשתמש ב-הפחת:

from functools import reduce

# Define a function to multiply two numbers
def multiply(x, y):
    return x * y

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Reduce the list using the function
product = reduce(multiply, numbers)

# Print the result
print(product)  # Output: 120

מַסְקָנָה

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