map في بايثون Python

من البديهي ان هناك بعض العمليات التي نقوم بتطبيقها بشكل متكرر على القوائم و ما شابهها من السلاسل. الدالة  map تسهل علينا هاته العملية بحيث نقوم بكتابة سطر واحد بدل عدة سطور. مثلا فيما يلي مثال على قائمة اصلية و نريد انشاء قائمة جديدة حسب عملية محددة تطبق على كل عنصر من اللائحة الاولى ثم يتم جمع النتائج في القائمة الجديدة.

بدون استعمال map

list1=[1,2,3,4,5]
list2=[]
for x in list1:
    list2.append(x**x)
print(list2)
النتيجة list2= [1, 4, 27, 256, 3125]

بأستعمال map

عامة عاته الدالة تتكون من عنصرين اساسيان فهي تكتب map(aFunction, aSequence) 
 aFunction : العملية او الدالة او الكلاس المراد تطبيقها
aSequence : القائمة الاساس المراد استعمالها 

اذن مثالنا سيصبح
  • في حالة عملية سريعة و بسيطة نستعمل دالة lambda للدوال المجهولة التي تستعمل لحظيا
list1=[1,2,3,4,5]
list2=list(map((lambda x: x**x), list1))    
print("list2=",list2) 

  • في حالة استعمال دالة
list1=[1,2,3,4,5]
def cal(x):
    return x**x
list2=list(map(cal, list1))    
print("list2=",list2)