دعنا نتحدث عن التقليل الأخير وهذا متقدم قليلاً وقد يكون من الصعب فهمه قليلاً في البداية ، ولكن
من الجيد معرفة أنه موجود ويمكنك معرفة المزيد عنه من خلال التدرب عليه وقراءة
بعض الوثائق الخاصة بك. ملك.
لا يأتي Reduce الآن كجزء من وظيفة python المضمنة.
لكي نستخدم الاختزال ، علينا أن نفعل شيئًا كهذا.
الآن ، لم تر هذا من قبل وهذا شيء سنصل إليه في قسم الوحدات في الدورة التدريبية.
لكن ما يحدث هنا بشكل أساسي هو عندما نقوم بتنزيل مترجم Python وحزمة Python ، في حالتنا
، هذا التموج يفعل ذلك بالفعل لنا.
يمكننا استيراد شيء ما من هذه الأدوات غير التقليدية ، وأدوات الفانك هي ما نسميه حزام الأدوات الذي يمكننا
استخدامه للأدوات الوظيفية التي تأتي مع تثبيت Python.
ومن هناك توجد وظيفة محددة يمكننا استيرادها.
لذلك أقول ، مرحبًا ، من أدوات الفانك من حزام الأدوات هذا ، أريدك أن تقوم باستيراد وظيفة الاختزال حتى نتمكن من استخدامها
في الكود الخاص بنا مرة أخرى ، وهو شيء سنقوم بتغطيته لاحقًا في الدورة التدريبية.
حتى الآن ، ما عليك سوى نسخ هذا السطر ولصقه.
بعد ذلك ، دعنا نزيل بعضًا من قائمتنا ونستخدم هنا تقليل.
الآن مع تقليل ، سنحتاج إلى بعض الأشياء.
أولاً.
نحن بحاجة إلى الوظيفة.
ثم نحتاج إلى التسلسل أو البيانات.
إذن ما هي الوظيفة التي ستكون؟
بادئ ذي بدء ، ستكون بياناتنا هي قائمتنا.
لذلك سأقول إن قائمتي والوظيفة المصغرة تسمح لنا بعمل شيء مثير للاهتمام.
يمكنني أن أعطيها ، دعنا نقول ، وظيفة ، وستطلق عليها هذه الوظيفة اسم المجمع.
ويأخذ المجمع معلمتين.
وتذكر أن هذا سيتم استدعاؤه بالاختزال.
لذا فإن Reduce سيكون مسؤولاً عن إعطاء هاتين المعلمتين من البيانات التي نقدمها
، وهي قائمتي.
المعلمة الأولى ستكون ما نسميه المجمع أو في حالتي ACC.
وبعد ذلك سيكون هذا هو العنصر.
الآن حيث يصبح الأمر مثيرًا للاهتمام حقًا أنه عندما نمرر القائمة الخاصة بي لأول مرة من التصغير ، سنحصل على
العنصر الأول.
سيكون العنصر الأول في هذه المعلمة.
ومع ذلك ، ما هو هذا أسيزي في البداية.
حسنًا ، إذا قمت بإزالة الأقواس هنا.
وتظهر لك تقليل.
ترى أن لدينا الوظيفة.
التسلسل الذي سيكون قائمتنا في حالتنا.
ثم المبدئي والأولي هو ما سيكون عليه المركب.
لذا مرة أخرى ، دعنا نقول أننا سنحصل على وظيفة المجمع التي لن نسميها بعد.
الحد من شأنه أن يفعل ذلك لنا.
سأعطيها القائمة.
أو البيانات التي نريد تكرارها.
ثم سأعطيها القيمة الأولية وهي صفر.
إذن لدينا ثلاثة.
المعلمات هنا أو ثلاث حجج نقدمها.
اسمحوا لي أن أغلق الأقواس.
ها أنت ذا.
دعنا نجعل هذا أكبر قليلاً هنا ونتأكد من أنني أستطيع التهجئة.
الآن هنا ، سيكون العنصر الأول هو العنصر الأول في قائمتي.
ومن ثم سيتحول المجمع إلى الصفر الافتراضي إذا لم نعطيه أي شيء.
أو في حالتنا ، قلنا أن المُجمع سيكون صفرًا.
لذا فإن أول شيء سنفعله هو إعادة المركب بالإضافة إلى العنصر.
تمام.
لذلك دعونا نمر بهذا واحدًا تلو الآخر.
سأقوم بالفعل بطباعة المُجمّع والعنصر هنا حتى نتمكن من رؤيته.
وبعد ذلك سأقوم بتشغيل هذا الرمز.
السطر 15 في الكائن غير قابل للتكرار.
وهذا صعب بعض الشيء ، لكننا في الواقع لم نعد بحاجة إلى القائمة بعد الآن لأن Reduce سيفعل شيئًا مثيرًا للاهتمام
بالنسبة لنا.
لذا دعنا نزيل هذا الآن ونعيد فقط ما يعطينا الاختزال في الطباعة.
إذا قمت بالنقر فوق تشغيل.
انظر إلى ذلك.
حسنًا ، ما الذي حدث للتو؟
لنلقي نظرة.
خفض.
يسمح لنا بتقليل شيء ما ، نوعًا من القيمة من المتكرر الذي نعطيه.
لذلك دعونا نذهب خطوة بخطوة.
لدينا قائمتي ، وسيتم تطبيق قائمتي على المجمع من خلال تقليل.
سيأخذ المجمع قائمتي وأول شيء سيفعله في المرور الأول سيقول ، مرحبًا
، ما هو المجمع الخاص بي؟
سأقوم بضبطه على الصفر.
لذا فإن أول تمريرات من خلال المجمع ستكون صفرًا.
سيكون العنصر واحدًا ، وهو ما نراه هنا وسنضيفه صفرًا زائد واحد.
حتى الآن عدنا واحدة.
الآن الطريق الثاني إلى.
ماذا سيحدث.
سيكون الممر الثاني عبر المجمع هو ما تم إرجاعه.
لذا فإن التمرير التالي لأي شيء يتم إرجاعه سيتم تعبئته في المجمع.
إذن في حالتنا ، صفر زائد واحد سيكون واحدًا.
سيكون العنصر.
واحد زائد اثنين يساوي ثلاثة.
إذن واحد زائد اثنين يساوي ثلاثة.
لذا في المرة القادمة ، سيكون المجمع ثلاثة وما نمر به سيكون
ثلاثة كما ترون هنا.
وثلاثة زائد ثلاثة يساوي ستة.
لقد جمعنا للتو كل هذه القيم وأعدنا رقمًا واحدًا ستة.
قمنا بتقليص قائمتنا إلى نوع من البيانات التي تعاملنا معها في حالتنا ، تراكم.
لكن كان بإمكاني فعل أي شيء أريده هنا.
لذا ، إذا قمت ، على سبيل المثال ، بتغيير هذا إلى لا يساوي عشرة ، فماذا تعتقد أنه سيحدث إذا قمت بالنقر فوق "تشغيل"؟
حصلت على 16 لأنني بدأت تراكمي الأولي بعشرة ، لذا كان عشرة زائد واحد ، وهكذا دواليك.
الآن يقلل بشكل كبير حقًا لأنه يمكنك فعل الكثير من الأشياء به.
إنها حقًا مرنة حقًا.
وفي الواقع أسفل الغطاء ، تستخدم وظائف مثل مرشح الخريطة هذا التقليل أسفل الغطاء حتى تتمكن من إنشاء
خريطتك الخاصة ووظيفة التصفية باستخدام تقليل.
مرة أخرى ، من الصعب فهم الاختزال قليلاً في البداية ويستغرق الأمر قليلًا من الممارسة لاستخدامه
حقًا ، ولكنه أحد الأشياء التي يحبها المبرمجون المتقدمون حقًا ، وستشاهد المزيد والمزيد
طوال حياتك المهنية. أنت تتحسن وأفضل.
سأراك في المرحلة التالية.
مع السلامة.