الخريطة ووظائف التصفية والتقليل في بايثون python
تعد خريطة الوظائف والتصفية والحد منها العمود الفقري للبرمجة الوظيفية وركائزها.
على الرغم من أن Python ليست لغة برمجة وظيفية بحتة، إلا أنها تحتوي على العديد من الميزات التي تسمح لك باستخدامها على هذا النحو.
في هذه المقالة سنرى بعض طرق إستخدام الخريطة في بايثون واستخدام وظائف التصفية والتضييق باستخدام Python، وكيف تتلائم مع أفكار البرمجة الوظيفية.
![]() |
وظائف الخريطة في بايثون python التصفية والتقليل |
وظيفة التصفية والتقليل في خريطة بايثون كاملة
الخريطة والتصفية والتقليل في بايثون
ستعمل map الدالة () function map () على التكرار على جميع العناصر الموجودة في العنصر القابل لتكرارات المعطاة، وستنفذ الوظيفة التي تم تمريرها كوسيطة لكل عنصر من العناصر.
دعنا نلقي نظرة على الكود المذكور أدناه.
مثال 1
عداد رمز = 0 لـ i في النطاق (10): عداد = 1 طباعة (عداد) في كل تكرار ، تقوم بإجراء إضافة باستخدام متغير العداد.
يجب أن تكون النتيجة شيء من هذا القبيل.
تصدير
1 2 3 4 5 6 7 8 9 10
ان ، هناك طريقة أخرى لتحقيق النتيجة أعلاه وهي استخدام وظيفة map () في بايثون.
def add_one (عدد):
إرجاع num 1
counter_list = map (add_one، range (10))
print (counter_list)
كما ترى أعلاه، تم الآن نقل عملية الإضافة إلى الوظيفة add_one ().
ترجع الدالة الوسيطة التي تم تمريرها إليها بالإضافة إلى 1.
الآن إذا حاولت طباعة counter_list، فستحصل على إخراج مشابه لهذا.
الخدماتالمصغرة في بايثون python<كائن الخريطة في 0x000001FED1D4FE80>
هو في الأساس عنوان كائن المولد الذي تم إنشاؤه بواسطة وظيفة map ().
يسمى هذا المفهوم بالتقييم البطيء، مما يعني أنه يتم تقييم الأشياء عند الحاجة ، وليس عند إنشائها.
تعمل وظيفة filter () مثل وظيفة map () ، باستثناء أنها تتحقق من صحة إذا تم استيفاء الشرط، و False خلاف ذلك.
يقوم فقط بإرجاع عناصر التسلسل التي تتحقق من صحة إلى True.
رمز
المثال 1
check_boolean = عامل التصفية
(منطقي ، ["Pylenin" ، "" ، "بلا]) print (list (check_boolean))
يتحقق الرمز أعلاه من الحالة المنطقية لعنصر في القائمة.
إذا كان هذا صحيحًا ، يتم إرجاع العنصر، إذا كان خطأ، لن يتم تضمينه في النتيجة.
الإخراج ['Pylenin'] كما ترى، يتم إرجاع "Pylenin" فقط في قائمة النتائج.
وهذا يعني أنه تم التحقق من الأخريين على أنهما خطأ بواسطة الدالة المنطقية.
على غرار وظيفة map ()، يقوم عامل التصفية () أيضًا بإجراء تقييم كسول.
للحصول على الإخراج، تحتاج إلى تحويله إلى ملف.
لذا يمكنك تضمين الدالة map () في داخل مصفوفة متكررة من الاختيارات، مثل القوائم، والمجموعات، والمجموعات ، وما إلى ذلك.
counter_list) الإخراج
[1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10]
يمكنك أيضًا استبدال الوظيفة المذكورة أعلاه باستخدام دالة لامدا Lambda.
مثال 2 -
استخدام رمز وظيفة Lambda
add_one = lambda x: x 1 counter_list = list (map (add_one، range (10)))
print (counter_list)
الاخراج
[1، 2، 3، 4، 5، 6، 7، 8، 9 ، 10]
filter () التصفية في خريطة بايثون
تعمل وظيفة filter () بشكل مشابه لوظيفة map ()، باستثناء أنها تتحقق من صحة True إذا تم استيفاء الشرط وتتحقق من صحة False خلاف ذلك.
يقوم فقط بإرجاع عناصر التسلسل التي تتحقق من صح إلى True.
المثال 1
Code check_boolean = filter (bool، ["Pylenin"، ""، None]) print (list (check_boolean))
يتحقق الكود أعلاه من الحالة المنطقية للعناصر في القائمة.
إذا كان صحيحًا، فإنه يُعيد العنصر وإذا كان خطأً ، فإنه لا يتم تضمينه في النتائج.
الإخراج ['Pylenin']
كما ترى ، يتم إرجاع "Pylenin" فقط في قائمة النتائج.
هذا يعني أنه يتم التحقق من صحة العنصرين الآخرين على أنهما خطأ من خلال وظيفة منطقي.
على غرار وظيفة map () ، يقوم عامل التصفية () أيضًا بإجراء تقييم كسول.
تقليل () على عكس الخريطة () والمرشح ()، لا تقوم وظيفة الاختزال () بإرجاع تسلسل جديد.
بدلاً من ذلك ، تقوم بإرجاع قيمة واحدة.
في Python 3، تم نقل تقليل () إلى مكتبة functools.
مثال 1
رمز
من functools import ، تقليل إضافة def (x ، y): return x y list = [1، 2، 3، 4] print (تقليل (إضافة ، قائمة))
يحاول الرمز أعلاه إضافة عناصر قائمة وإرجاع الناتج النهائي.
الآن قد تعتقد أن هذا لا داعي له من اجل القيام بإضافة بسيطة.
أيضًا يمكن أن يكون أداءها سيئًا لأنه يستدعي وظيفة عدة مرات.
لذا ، كن حذرًا في استخدام وظيفة تقليل () في التعليمات البرمجية الخاصة بك.
الخريطة والتصفية والتقليل في بايثون python
تعليقات
إرسال تعليق
مرحبا بك على "manaliiblog" نتشرف بارائك وملاحظاتك الخاصة بمواضيع مدونة منالي. يمكنك ترك تعليقك هنا👇🏼