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)