→ البرمجة والكود
💻 البرمجة والكود 🤖 ChatGPT
إتقان البرمجة الوظيفية في بايثون: Map و Filter و Reduce
Mastering Functional Programming in Python: Map, Filter, and Reduce
البرومبت
Act as a senior Python developer with 10+ years of experience in functional programming. Teach me how to effectively use the `map`, `filter`, and `reduce` functions in Python with practical examples. Cover the following: 1. **Map**: Explain how to apply a function to every item in an iterable [LIST/ARRAY] and return a new iterable. Provide an example like squaring numbers in a list. 2. **Filter**: Demonstrate how to selectively include items from an iterable [LIST/ARRAY] based on a condition. Use an example like filtering even numbers. 3. **Reduce**: Show how to cumulatively apply a function to reduce an iterable [LIST/ARRAY] to a single value, such as summing all elements. Include best practices, common pitfalls, and performance considerations for each function.

كيف تستخدم هذا البرومبت؟

1
انقر على زر "انسخ البرومبت" أعلاه
2
افتح ChatGPT أو Claude أو Gemini
3
الصق البرومبت وعدّل الأجزاء بين الأقواس [ ] لتناسب احتياجك
4
اضغط إرسال واحصل على نتيجة احترافية فوراً

أسئلة شائعة

ما هي البرمجة الوظيفية في بايثون؟
البرمجة الوظيفية هي نمط برمجة يعتمد على استخدام الدوال النقية وتجنب تغيير الحالة أو البيانات. في بايثون، يمكن تطبيقها باستخدام دوال مثل `map` و `filter` و `reduce`.
كيف يعمل دالة `map` في بايثون؟
دالة `map` تطبق دالة محددة على جميع عناصر متكرر (مثل قائمة) وتعيد كائن `map` يحتوي على النتائج. مثال: `map(lambda x: x * 2, [1, 2, 3])` يعيد `[2, 4, 6]`.
ما الفرق بين `filter` و `map`؟
`map` تطبق دالة على كل عنصر وتعيد النتائج، بينما `filter` تعيد فقط العناصر التي تحقق شرطًا معينًا. مثال: `filter(lambda x: x > 2, [1, 2, 3, 4])` يعيد `[3, 4]`.
كيف تستخدم دالة `reduce` في بايثون؟
`reduce` تطبق دالة على عناصر متكرر وتجمعها إلى قيمة واحدة. يجب استيرادها من `functools`. مثال: `reduce(lambda x, y: x + y, [1, 2, 3])` يعيد `6`.
ما هي مزايا استخدام البرمجة الوظيفية في بايثون؟
تساهم في كتابة كود أوضح وأسهل للاختبار والصيانة، تقليل الأخطاء الجانبية، وتحسين الكفاءة عند التعامل مع البيانات الكبيرة.
هل يمكن استخدام `map` و `filter` مع دوال عادية بدلاً من لامبدا؟
نعم، يمكن استخدام أي دالة مع `map` و `filter` سواء كانت لامبدا أو دالة عادية. مثال: `def square(x): return x * 2` ثم `map(square, [1, 2, 3])`.