أعتقد أن الجميع يعرف ما يعنيه "مجهول" أنه ليس له اسم. في بعض الأحيان، لا نحتاج إلى تسمية الوظيفة عند كتابة البرنامج. في الوقت الحالي، يمكننا استخدام تعبيرات لامدا لاستخدام الدوال المجهولة.
دعونا نستخدم مثالاً لتقديم الاستخدام البسيط لدالة لامدا . المتغير m هو القيمة التي ندخلها. نحتاج إلى استخدام دالة مجهولة لإرجاع مجموع مربعات m القيمة هي 4.
الرمز هو كما يلي:
m=int(input('الرجاء إدخال رقم:'))#m هي قيمة الإدخال a=lambdax:x*x# استخدم المتغير a لتكوين تعبير print('القيمة المرجعة هي:',a(m) )
الإخراج هو:
الرجاء إدخال رقم: 6. قيمة الإرجاع هي: 36
دعونا نلقي نظرة على بنيتها من خلال الشكل أدناه:
دعونا نستخدم وظيفة مجهولة من خلال مثال:
m=int(input('الرجاء إدخال رقم:'))#m هي قيمة الإدخال a=lambdax:x+10*10+x*xprint('القيمة المرجعة هي:',a(m))
الإخراج هو:
الرجاء إدخال رقم: 5. قيمة الإرجاع هي: 130
من المثالين أعلاه، يمكننا أن نفهم أن تعبير لامدا يعادل ضغط الوظيفة في سطر واحد من التعليمات البرمجية، ثم استدعاء الوظيفة مباشرة من خلال تعريف المتغير. يمكن لهذه الطريقة تبسيط التعليمات البرمجية لدينا.
يمكننا أيضًا استخدام الوظائف المجهولة بالتسلسل. يمكن أن يساعدنا استخدام الوظائف المجهولة في تصفية البيانات بسرعة. انظر المثال التالي:
من المعروف أن القائمة هي [1,4,6,9,12,23,25,28,36,38,41,56,63,77,88,99] نحتاج إلى إعادة الأعداد الزوجية الموجودة فيها وتخزينها في القائمة بين.
يمكننا استخدام وظيفة التصفية للتصفية.
الرمز هو كما يلي:
my_list=[1,4,6,9,12,23,25,28,36,38,41,56,63,77,88,99]print(list(filter(lambdax:x%2==0, my_list))))
الإخراج هو:
[4،6،12،28،36،38،56،88]
نقوم بتحليل هذا التعبير من الداخل إلى الخارج، الكائن الأول في وظيفة التصفية () هو طريقة التصفية لدينا، والأخير هو الكائن الذي نريد تصفيته، ثم نقوم بتخزين هذه البيانات في القائمة باستخدام وظيفة القائمة (). وأخيرًا طباعتها، يمكن أن تساعدنا هذه الطريقة في دمج البيانات بسرعة.
يمكننا أيضًا صياغة القواعد من خلال وظائف مجهولة عند الفرز.
أولاً، نعلم أن مجموعة القوائم هي [('Tuple A',15,33), ('Tuple B',25,26), ('Tuple C',7,7)]. يحتوي العنصر على اسم كل صف والقيم الدنيا والقصوى. نحتاج إلى فرز القائمة حسب الفرق بين الحد الأقصى والحد الأدنى لقيم كل شخص، انظر الكود التالي:
my_list=[('الصف A',15,33),('الصف B',25,26),('الصف C',7,7)]my_list.sort(key=lambdax:x[2]-x [1])# استخدم الكلمة الأساسية لتقديم طريقة الفرز. تعتمد طريقة الفرز على الفرق بين العنصر الثالث والعنصر الثاني، والفهارس المقابلة هي 2 و1print(my_list).
هيكل الإخراج هو:
[('الصف C',7,7),('الصف B',25,26),('الصف A',15,33)]
يمكننا إجراء عملية حسابية بسيطة أولاً. الاختلافات بينهما هي 18 و1 و0 على التوالي، لذا يجب أن يكون ترتيبها C وB وA. نتيجة الإرجاع x[2]-x[1] في تعبير لامدا، نحصل عليها. الفرق بينهما، ثم قم بالفرز حسب الفرق.
تعتبر الوظائف المجهولة ذات أهمية خاصة عند تصفية البيانات، حيث يمكنها مساعدتنا بسرعة في حل مشكلات البيانات المعقدة والمرهقة، وفي الوقت نفسه، يمكنها تحسين الكود الخاص بنا وجعل الكود العام أكثر إيجازًا القسم، وسوف نتعلم الوظائف الأساسية الثلاث في وظائف.