اذهب إلى المحتوى

السؤال

نشر (معدل)

عادة ما أستخدم هذا الفلتر للتحقق من وجود قيمة ما في مصفوفة على Python، لكن وجدت مؤخرًا أنه يمكنني استخدام طريقة lambda للحصول على نفس النتيجة، مثال:

my_list = [i for i in my_list if i.attribute == value]

طريقة lambda:

filter(lambda x: x.attribute == value, my_list)

سؤالي يتمحور حول الفرق بين كلا الطريقتين، وهل طريقة lambda تتميز بالسرعة والفعالية -من حيث الكود-، أم أنهما سيّان؟

تم التعديل في بواسطة Simoh

Recommended Posts

  • 0
نشر

ملاحظة مهمة يجب عليك الانتباه لها، وهي أن الطريقة الأولى أسهل وأوضح من طريقة lambda، حيث يمكن للمبرمج المحترف والمبتدئ على حد سواء فهمها واستعمالها بشكل سليم، عكس الطريقة الثانية -lambda- التي أرى أنها غير واضحة للكل، والتي رأيت بعد البحث أنها تُستخدم بشكل أكبر في الحسابات الرياضية المعقدة شيئاً ما.

فيما يخص قضية السرعة والفعالية، فهذا رهين بكيفية استخدامك للكود، وطريقة استدعاءك للدالة أو الشيفرة البرمجية المتوفرة على هذا الفلتر، لذا لا تشغل نفسك  بمسألة الفعالية، بل الأهم  تعلم كتابة الكود الصحيح.

Python: Lambda Functions

 وفي هذين الشريطين، شرح لكلا الطريقتين بشكل مفصل:

 الفلتر بدالة labmda:

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...