map في بايثون Python

 
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)