הבנת פונקציות המפה, הסינון וההפחתה של 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. הם מספקים פתרונות אלגנטיים להחלת טרנספורמציות, סינון נתונים והקטנת אוספים לערך יחיד. על ידי שליטה בפונקציות הללו, אתה יכול לכתוב קוד תמציתי ואקספרסיבי יותר עבור מגוון משימות עיבוד נתונים.