"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قائمة الفهم والريغي

قائمة الفهم والريغي

تم النشر بتاريخ 2024-11-08
تصفح:116

List Comprehension and Regae

اه. اللحظة التي كنت أخافها.

أول مشاركة تحتوي على أفكاري وآرائي وتقسيم المعرفة المحتمل.

انتبه، عزيزي القارئ، هذا ليس بحثًا عميقًا أو تفصيلًا مذهلاً لقدرة بايثون على سطر واحد في حلقة for-loop، والإلحاق بقائمة، وإرجاع بعض البيانات. لا، لا. هذا مجرد عرض لمدى متعة الأشياء الصغيرة - ومدى غباءها - التي يمكن أن تجتمع معًا لتصنع شيئًا أكثر غباءً... نعم... ولكنها أيضًا أنيقة نوعًا ما.

لذا، دعونا نشعل نار القمامة! مرحا!


قصة:

في أيام شبابي، كنت أعمل في معسكر صيفي، وأتعلم طرق أن أكون شابًا ومن جزيرة هيبي مشهورة... سمعت أغنية. رجل، هل كان جذابا. ليس جاستن بيبر جذابًا، لكنه جذاب رغم ذلك. الأغنية التي لم أكن أعلمها من قبل سيكون لها تأثير كبير على الطريقة التي بدأت بها تعلم كتابة التعليمات البرمجية. أغنية اسمها... "اجتياز الهولندي."

الآن، ربما تفكر، "ما علاقة أغنية الريغي بالبرمجة؟" كل الآذان، من فضلك.


اجتياز اللغة الهولندية... أسلوب فهم القائمة:

إذا كنت مثلي، فقد تبدو عمليات فهم القائمة وكأنها علم ساحر، أو سطر واحد من المفترض أن "يبسط" كل شيء. تلك الطريقة "البيثونية" الحلوة والحلوة. ولكن بدلاً من ذلك، جعلني أشعر وكأن تروس عقلي كانت تطحن إلى حد التوقف (هل سبق لك أن انحنى إلى الشاشة وأغمضت عيناك؟ - نعم...بالضبط).

كان الأمر كما لو أنه طُلب مني تمرير بعض "الهولندية" الغامضة والسحرية (سعال.. متغير.. سعال) إلى الجانب الأيسر، لكن لم يكن لدي أي فكرة عما كنت أمرره، وإلى أين يتجه، أو لماذا يهم. (حسنًا، لقد فعلت ذلك، ولكن من أجل القصة...)

اسمح لي بتفصيلها: قائمة الفهم تدور حول تمرير الأشياء، تمامًا كما في الأغنية. إنها طريقة لتصفية القوائم وتحويلها، كل ذلك في سطر واحد أنيق. يجب أن تشاهد بعض أهوال البرمجة التي كتبتها فقط من أجل "مرحبًا، لقد أدخلتها في سطر واحد من التعليمات البرمجية! نقاط لجريفندور!" وأنا متأكد من ذلك كثيرًا' كل شيء يمكن أن يتعلق به، (أنا أفضّل حقًا أسطرًا متعددة من التعليمات البرمجية، كما تعلم... سهولة القراءة).

لماذا يهم الاستيعاب في القائمة: بدلاً من استخدام أسطر متعددة من الحلقات وطرق append()، تسمح لك الاستيعابات القائمة بكتابة تعليمات برمجية موجزة وقابلة للقراءة في عدد أقل من الأسطر. وهي غالبًا ما تكون أسرع أيضًا، مما يجعلها أداة مفضلة لمطوري لغة Python عند العمل مع القوائم.


لذا... بالنسبة لأولئك منا الذين ربما فعلوا ذلك أو لم يفعلوا ذلك (رائع، لقد أخذني التصحيح التلقائي للتو في رحلة برية هناك)، أقدم لكم حل عقلي لفهم أبسط فهم القائمة الأساسية :

left_hand_side = ['dutchie', 'pon the left hand side']

def catchyReggaeFunction(lyrics):
    where_the_dutchie_is_passed_to = [
        f"pass the {pon_the} pon the left hand side" for pon_the in lyrics if pon_the == 'dutchie'
    ]
    return where_the_dutchie_is_passed_to

printer = catchyReggaeFunction(left_hand_side)
print(printer)

الإخراج:

['pass the dutchie pin the left hand side']

الهدف من هذا المثال السخيف هو إظهار أن فهم القائمة يدور حول تمرير الأشياء - تمامًا مثل الهولندي. في هذه الحالة، أقوم بتصفية "الهولندية" من القائمة وتمريرها إلى القائمة الجديدة.


الوجبات الجاهزة... إيه، الوجبات الجاهزة:

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

إذًا، ها هي: رحلتي من الارتباك إلى فهم فهم القائمة، هولنديًا واحدًا في كل مرة.

الآن، ألم نحظى جميعًا بوقت ممتع؟

بيان الافراج تم نشر هذه المقالة على: https://dev.to/yoshed-it/list-comprehension-and-regae-4ne6?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3