لنقم بتمرين ممتع لاختبار فهمنا وسنستخدم تعبيرات لامدا.
الآن أريدك أن تنشئ تعبير لامدا الذي سيحدد قائمتنا.
لنفترض أن لدينا قائمتي وهذه هي قائمتي.
سيكون لدينا خمسة ، أربعة ، ثلاثة.
الآن أريدك أن تنشئ تعبير لامدا من سطر واحد سيتم طباعته لنا.
قائمة مربعة.
إذن خمسة أس اثنين يساوي 25.
أربعة أس اثنين يساوي 16 ، وثلاثة أس اثنين يساوي تسعة.
إذن القائمة التي تحتوي على تلك القيم باستخدام تعبيرات لامدا.
إذن هذا هو التحدي الأول الذي تواجهه هو الموازنة.
التحدي القادم.
وهذا صعب بعض الشيء.
سنقوم ببعض فرز القائمة.
لنرسم مربعًا هنا حتى تتمكن من الرؤية.
وفي هذه القائمة الفرز.
لدي قائمة.
وهذه القائمة.
حسنًا ، إنها صعبة.
لدينا قائمة تتكون من مجموعة من صفر إلى.
ثم tuple ، دعنا نقول ، لثلاثة.
و tuple ، لنقل تسعة ، تسعة ، ثم أخيرًا بنية تساوي عشرة سالب واحد.
الآن ، ما أريدك أن تفعله هو الفرز.
هذا على أساس الثاني.
قيمة.
تأكد من أن هذه فاصلة.
هذا هو ما أريد أن يتم فرزها بحيث تكون هذه المجموعة أولًا لأن سالب واحد هو الأدنى ، ثم هذه المجموعة
لأن اثنين هو التالي الأعلى.
ثم هذه المجموعة.
فكيف يمكنك فعل ذلك باستخدام تعبيرات لامدا؟
الآن ، هذا صعب.
لذا إذا لم تفهمها ، فلا تقلق.
وقفة الفيديو هنا.
خذ وقتك.
انظر إذا كان يمكنك حل هذا.
خلاف ذلك ، سأبدأ بالإجابات.
هذا يجب أن يكون سهلًا إلى حد ما بالنسبة لك ، أليس كذلك؟
يمكننا ببساطة القيام بوظيفة الخريطة أو هل تعرف ماذا؟
دعنا نقول فقط أن القائمة الجديدة ستساوي القائمة التي سنقوم بتخطيطها.
وهنا ، لا شيء لم نره من قبل.
سأقول لامدا.
سيكون الرقم عددًا مرفوعًا للقوة الأسية اثنين.
والقائمة التي سأعطيها إياها.
ستكون قائمتي.
إذا قمت بتشغيل هذا.
ها أنت ذا.
جميل وسهل.
لطيف - جيد.
سهل.
بطانة واحدة.
ماذا عن هذا ، رغم ذلك؟
هذا صعب بعض الشيء وعليك حقًا التفكير فيه.
لقد تعلمنا أن لدينا طريقة الفرز النقطي ، أليس كذلك؟
وهذا النوع في الواقع.
حسنًا ، دعنا نرى ما سيحدث إذا قمت بالفرز بهذا الشكل.
إذا قمت بطباعة فرز نقطي ثم قمت بالنقر فوق تشغيل.
لا أحصل على أي شيء لأنه يعدل القائمة في مكانها.
لذلك دعونا نطبع a بعد أن قمنا بفرزها.
إذا قمت بالنقر فوق تشغيل.
حسنا.
هو - هي.
أعني ، يبدو أنه تم فرزها مع الرجل الأول.
ماذا لو نقلنا هذا؟
وهنا في المنتصف.
وانقر فوق تشغيل.
حسنا.
يبدو أنه يقوم بفرزها لي ، لكنه يقوم بفرزها بناءً على هذا العنصر الأول.
لكني أريد هذا العنصر الثاني أو ما نسميه المفتاح الثاني ليكون عامل الفرز.
وإذا رأيت هنا ، إذا قمنا بالفرز ، يجب أن أعطيها مفتاحًا.
ونريد أن يكون المفتاح.
إلى.
فكيف يمكننا فعل ذلك؟
حسنًا ، يمكننا أن نفعل شيئًا كهذا.
يمكننا القول أن المفتاح سيساوي.
كل مفتاح من المفاتيح الثانية ويمكننا استخدام تعبير لامدا هنا.
يمكننا أن نقول لامدا.
لذا فإن المعلمة الافتراضية.
ستكون lambda لـ x ثم نقول ببساطة x واحد.
همم.
دعنا نتجاوز هذا.
ما أقوله هو ، مهلا ، أريدك أن تشغل وظيفة الفرز.
والمفتاح الخاص بوظيفة السيف عندما أقوم بفرز كل شيء هو أنني أريده أن يتكرر
على كل عنصر.
سأفهم أن X ستكون هذه المجموعة.
وأريدك أن تستخدم القيمة التي سنعيدها ، وهي القيمة الثانية.
لذا سيكون المفتاح دائمًا هو العنصر الثاني.
الآن إذا قمنا بتشغيل هذا.
انظر إلى ذلك.
نحن قادرون على الفرز.
حسب البند الثاني.
الآن ، إذا لم يحصل على هذا ، فلا تقلق.
هذا صعب للغاية ويصعب عليك التعود على بناء الجملة أو معرفة أن هذا النوع يعمل بهذه الطريقة.
لكن الهدف هو إظهار أن هذا أمر شائع يمكنك القيام به باستخدام وظائف لامدا.
وطريقة للتأكد من أنه يمكنك الفرز باستخدام مفاتيح مختلفة.
على سبيل المثال ، قد يعمل هذا مع قاموس أو قائمة أخرى داخل القائمة.
هذه طريقة شائعة لضبط الترتيب ، وهو نمط عليك فقط تذكره.
لكنه يوضح لك قوة لامدا ، حيث لا يتعين علينا حقًا كتابة هذه الوظائف
المعقدة إذا احتجنا حقًا إلى وظيفة لمرة واحدة.
ومجرد وظيفة ترجع شيئًا بسيطًا.
Lambda أداة رائعة للاستخدام ، ولكن إذا لم تحصل على هذا ، كما قلت ، فلا تقلق.
هذه واحدة من تلك الأشياء التي عليك فقط تذكرها.
لنأخذ استراحة وسأراك في المرة القادمة.
مع السلامة.