Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة Map

جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 72 من 78.

تأخذ الدالة map() شيئين رئيسيين:

  1. دالة (تحتوي على تعليمات لما يجب القيام به)
  2. تسلسل من العناصر (مثل قائمة، أو أي مجموعة من العناصر)

ثم تقوم بتطبيق تلك الدالة على كل عنصر في التسلسل الخاص بك، واحداً تلو الآخر، وتعيد لك جميع النتائج.

على سبيل المثال:

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. يدخل الرقم 1 ← تجعله square function‏ 1
  2. يدخل الرقم 2 ← تجعله square function‏ 4
  3. يدخل الرقم 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() مع أي مجموعة من العناصر - وليس فقط الأرقام. يمكن أن تكون سلاسل نصية، أو أي نوع آخر من البيانات التي تريد معالجتها بنفس الطريقة.

challenge icon

التحدي

سهل

أنشئ دالة باسم 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)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow