دالة Map
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 72 من 78.
تأخذ الدالة map() شيئين رئيسيين:
- دالة (تحتوي على تعليمات لما يجب القيام به)
- تسلسل من العناصر (مثل قائمة، أو أي مجموعة من العناصر)
ثم تقوم بتطبيق تلك الدالة على كل عنصر في التسلسل الخاص بك، واحداً تلو الآخر، وتعيد لك جميع النتائج.
على سبيل المثال:
def square(n):
return n * n
numbers = [1, 2, 3, 4, 5] # هذه مجرد قائمة من الأرقام
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# المخرجات: [1, 4, 9, 16, 25]ماذا حدث هنا:
- لدينا قائمة من الأرقام: [1, 2, 3, 4, 5]
- تأخذ الدالة
map()كل رقم، واحداً تلو الآخر - تقوم بتمرير كل رقم عبر دالة
squareالخاصة بنا - تقوم بجمع كل النتائج بالترتيب
يمكنك التفكير في الأمر كخط تجميع:
- يدخل الرقم 1 ← تجعله square function 1
- يدخل الرقم 2 ← تجعله square function 4
- يدخل الرقم 3 ← تجعله square function 9 وهكذا...
يمكنك أيضاً استخدام دالة lambda بدلاً من تعريف دالة منفصلة:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# المخرجات: [1, 4, 9, 16, 25]تعمل دالة map() مع أي مجموعة من العناصر - وليس فقط الأرقام. يمكن أن تكون سلاسل نصية، أو أي نوع آخر من البيانات التي تريد معالجتها بنفس الطريقة.
التحدي
سهلأنشئ دالة باسم convert_to_uppercase تأخذ قائمة من السلاسل النصية strings كوسيط. يجب أن تستخدم الدالة map() مع دالة lambda لتحويل كل سلسلة نصية في القائمة إلى أحرف كبيرة. يجب أن تعيد الدالة قائمة تحتوي على السلاسل النصية بالأحرف الكبيرة.
ورقة مرجعية
تقوم الدالة map() بتطبيق دالة على كل عنصر في تسلسل وتعيد النتائج:
def square(n):
return n * n
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# المخرجات: [1, 4, 9, 16, 25]يمكنك أيضاً استخدام دوال لامبدا (lambda functions) مع map():
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# المخرجات: [1, 4, 9, 16, 25]تعمل الدالة map() مع أي نوع من البيانات، وليس الأرقام فقط.
جرّب بنفسك
def convert_to_uppercase(strings):
# استخدم map() مع دالة lambda لتحويل السلاسل النصية إلى أحرف كبيرة
uppercase_strings =
# إرجاع قائمة السلاسل النصية بالأحرف الكبيرة
return list(uppercase_strings)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق