فهم وظائف الخريطة والتصفية والاختزال في بايثون
توفر لغة بايثون العديد من أدوات البرمجة الوظيفية التي يمكنها تبسيط مهام معالجة البيانات. ومن بين هذه الأدوات الوظائف 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
لتصفية العناصر من كائن قابل للتكرار استنادًا إلى دالة تُرجع 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])
مثال
على سبيل المثال، للعثور على حاصل ضرب جميع الأرقام في قائمة، يمكنك استخدام reduce
:
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. فهي توفر حلولاً أنيقة لتطبيق التحويلات وتصفية البيانات وتقليص المجموعات إلى قيمة واحدة. من خلال إتقان هذه الوظائف، يمكنك كتابة أكواد أكثر إيجازًا وتعبيرًا لمجموعة متنوعة من مهام معالجة البيانات.