فهم وظائف الخريطة والتصفية والاختزال في بايثون

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