लैम्बडा फंक्शन्स क्या हैं और इनका उपयोग कैसे करें?

सामान्य कार्यों और लैम्ब्डा कार्यों के बीच अंतर के साथ पायथन लैम्बडा फ़ंक्शन सीखें और उन्हें फ़िल्टर (), मैप (), कम () में कैसे उपयोग किया जा सकता है।

एक नाम एक सम्मेलन है जिसका उपयोग किसी भी इकाई को संदर्भित या संबोधित करने के लिए किया जाता है। हमारे आसपास लगभग हर चीज का एक नाम है। प्रोग्रामिंग की दुनिया भी इसी के अनुसार चलती है। लेकिन क्या यह सब कुछ नाम होना चाहिए? या आपके पास कुछ ऐसा हो सकता है जो सिर्फ 'गुमनाम' हो? इसका जवाब है हाँ। ' लैम्ब्डा फंक्शंस प्रदान करता है, जिसे बेनामी कार्यों के रूप में भी जाना जाता है जो वास्तव में अनाम हैं। तो चलिए निम्नलिखित क्रम में अजगर के इन ’अनाम रहस्यों’ के बारे में जानने के लिए आगे बढ़ते हैं।

तो चलिए शुरू करते हैं :)





पायथन लैम्ब्डा फंक्शंस का उपयोग क्यों करें?


अनाम फ़ंक्शन का मुख्य उद्देश्य तस्वीर में आता है जब आपको बस एक बार कुछ फ़ंक्शन की आवश्यकता होती है। उन्हें जहां जरूरत हो वहां बनाया जा सकता है। इस कारण से, पायथन लैंबडा फंक्शंस को थ्रो-फ़ंक्शंस फ़ंक्शन के रूप में भी जाना जाता है जो कि अन्य पूर्वनिर्धारित फ़ंक्शंस जैसे फ़िल्टर (), मैप (), आदि के साथ उपयोग किए जाते हैं। ये फ़ंक्शंस आपके कोड की लाइनों की संख्या को कम करने में मदद करते हैं जब तुलना में सामान्य ।

इसे साबित करने के लिए, आइए आगे बढ़ते हैं और पायथन लैम्ब्डा कार्यों के बारे में सीखते हैं।



पायथन लैम्बडा फंक्शन्स क्या हैं?


पायथन लैंबडा फ़ंक्शन ऐसे कार्य हैं जिनका कोई नाम नहीं है। उन्हें अनाम या अनाम कार्यों के रूप में भी जाना जाता है। 'लैम्ब्डा' शब्द एक नाम नहीं है, बल्कि इसका एक कीवर्ड है। यह कीवर्ड निर्दिष्ट करता है कि फ़ंक्शन निम्न प्रकार अनाम है।

अब जब आप जानते हैं कि इन अनाम कार्यों का क्या उल्लेख है, तो आइए हम आगे देखते हैं कि आप इन पायथन लैम्बडा कार्यों को कैसे लिखते हैं।

पायथन में लैम्ब्डा फंक्शंस कैसे लिखें?

लैम्ब्डा ऑपरेटर का उपयोग करके एक लैम्ब्डा फ़ंक्शन बनाया जाता है और इसका सिंटैक्स निम्नानुसार है:



वाक्य - विन्यास:

लंबोदर तर्क: अभिव्यक्ति

अजगर भेड़ का बच्चा समारोह किसी भी तर्क हो सकता है, लेकिन यह सिर्फ लेता है एक अभिव्यक्ति। इनपुट या तर्क 0 पर शुरू हो सकते हैं और किसी भी सीमा तक जा सकते हैं। किसी भी अन्य कार्यों की तरह, बिना किसी इनपुट के लंबो कार्यों को करना पूरी तरह से ठीक है। इसलिए, आप निम्न में से किसी भी प्रारूप में लैम्बडा फ़ंक्शन कर सकते हैं:

उदाहरण:

लैम्ब्डा: 'उद्देश्य निर्दिष्ट करें'

इधर, लंबोदर समारोह कोई तर्क नहीं दे रहा है।

उदाहरण:

लैम्ब्डा एएक: “एक के उपयोग को निर्दिष्ट करेंएक'

यहाँ, लैम्बडा एक इनपुट ले रहा है जो एएक

एक सरणी जावा में एक वस्तु है

इसी तरह, आप लैम्बडा ए कर सकते हैंएक, सेवा मेरे, सेवा मेरे..सेवा मेरेएन

इसे प्रदर्शित करने के लिए कुछ उदाहरण दें:

उदाहरण 1:

a = लैम्ब्डा x: x * x प्रिंट (a (3))

OUTPUT:

उदाहरण 2:

a = लैम्ब्डा x, y: x * y प्रिंट (a (3,7))

OUTPUT: इक्कीस

जैसा कि आप देख सकते हैं, मैंने यहां दो उदाहरण लिए हैं। पहला उदाहरण लैम्ब्डा फ़ंक्शन का उपयोग केवल एक अभिव्यक्ति के साथ करता है जबकि दूसरे उदाहरण में दो तर्क दिए गए हैं। कृपया ध्यान दें कि दोनों कार्यों में तर्कों के बाद एक ही अभिव्यक्ति है। इसलिए, लैम्बडा फ़ंक्शन का उपयोग नहीं किया जा सकता है जहाँ आपको मल्टी-लाइन एक्सप्रेशन की आवश्यकता होती है।

दूसरी ओर, सामान्य अजगर फ़ंक्शंस अपने फ़ंक्शन परिभाषाओं में किसी भी संख्या में बयान ले सकते हैं।

बेनामी फ़ंक्शंस कोड के आकार को कैसे कम करते हैं?

आवश्यक कोड की मात्रा की तुलना करने से पहले, पहले के सिंटैक्स को लिखें और इसकी तुलना पहले वर्णित लाम्बा कार्यों के साथ करें।

पायथन में किसी भी सामान्य फ़ंक्शन का उपयोग करके परिभाषित किया गया है हार कीवर्ड इस प्रकार है:

वाक्य - विन्यास:

def function_name (पैरामीटर):
कथन

जैसा कि आप देख सकते हैं, लैम्बडा फ़ंक्शन के लिए आवश्यक कोड की मात्रा सामान्य कार्यों की तुलना में काफी कम है।

आइए अब हम सामान्य कार्यों का उपयोग करके पहले लिए गए उदाहरण को फिर से लिखें।

उदाहरण:

def my_func (x): x * x प्रिंट लौटाएं (my_func (3))

OUTPUT:

जैसा कि आप देख सकते हैं, उपरोक्त उदाहरण में, हमें 3. के वर्ग के मूल्य का मूल्यांकन करने के लिए my_func के भीतर एक रिटर्न स्टेटमेंट की आवश्यकता है। इसके विपरीत, लैम्ब्डा फ़ंक्शन इस रिटर्न स्टेटमेंट का उपयोग नहीं करता है, लेकिन, अनाम फ़ंक्शन का शरीर बृहदान्त्र प्रतीक के बाद फ़ंक्शन के रूप में एक ही पंक्ति में लिखा गया है। इसलिए फंक्शन का आकार my_func से छोटा है।

हालांकि, उपरोक्त उदाहरणों में लंबोदर फ़ंक्शन, कुछ अन्य का उपयोग करके कहा जाता है ए। ऐसा इसलिए किया जाता है क्योंकि ये फ़ंक्शन नामहीन हैं और इसलिए कुछ नाम की आवश्यकता होती है। लेकिन, यह तथ्य भ्रामक लग सकता है कि ऐसे असंगत कार्यों का उपयोग क्यों करें जब आपको उन्हें कॉल करने के लिए किसी अन्य नाम को वास्तव में असाइन करने की आवश्यकता हो? और निश्चित रूप से, मेरे फ़ंक्शन को नाम बताने के बाद, यह अब और बेकार नहीं रहेगा! सही?

यह एक वैध सवाल है, लेकिन मुद्दा यह है, यह इन गुमनाम कार्यों का उपयोग करने का सही तरीका नहीं है।

अन्य कार्यों के भीतर बेनामी कार्यों का सबसे अच्छा उपयोग किया जाता है उच्च-क्रम के कार्य या तो किसी फ़ंक्शन का उपयोग तर्क के रूप में करते हैं या, आउटपुट के रूप में फ़ंक्शन को वापस करते हैं। इसे प्रदर्शित करने के लिए, अब हम अपने अगले विषय की ओर बढ़ते हैं।

पायथन लैम्ब्डा उपयोगकर्ता-परिभाषित कार्यों के भीतर कार्य करता है:

जैसा कि ऊपर उल्लेख किया गया है, बेहतरीन लाभ को चिह्नित करने के लिए अन्य कार्यों के भीतर लंबो कार्यों का उपयोग किया जाता है।

निम्न उदाहरण में new_func शामिल है जो एक सामान्य अजगर फ़ंक्शन है जो एक तर्क x लेता है। इस तर्क को फिर कुछ अज्ञात तर्क y में जोड़ा जाता है जिसे लैम्बडा फ़ंक्शन के माध्यम से आपूर्ति की जाती है।

उदाहरण:

sqlite समीक्षा के लिए db ब्राउज़र
def new_func (x): रिटर्न (lambda y: x + y) t = new_func (3) u = new_func (2) प्रिंट (t (3)) प्रिंट (u (3))

OUTPUT:



जैसा कि आप देख सकते हैं, उपरोक्त उदाहरण में, new_func के भीतर मौजूद लैम्ब्डा फ़ंक्शन को जब भी हम new_func () का उपयोग करते हैं, कहा जाता है। हर बार, हम तर्कों को अलग मान दे सकते हैं।

अब जब आपने देखा कि उच्च-क्रम के कार्यों में अनाम कार्यों का उपयोग कैसे किया जाता है, तो आइए अब इसके सबसे लोकप्रिय उपयोग में से एक को समझने के लिए आगे बढ़ते हैं जो फ़िल्टर (), मानचित्र () और कम () विधियों के भीतर है।

फ़िल्टर के भीतर बेनामी कार्यों का उपयोग कैसे करें (), नक्शा () और कम करें ():

अनाम कार्यों के भीतर फ़िल्टर ():

फ़िल्टर ():

फ़िल्टर () विधि का उपयोग किसी अन्य फ़ंक्शन की सहायता से दिए गए पुनरावृत्तियों (सूचियों, सेटों इत्यादि) को फ़िल्टर करने के लिए किया जाता है, एक तर्क के रूप में पारित किया जाता है, सभी तत्वों को सही या गलत साबित करने के लिए।

इस फ़ंक्शन का सिंटैक्स है:

वाक्य - विन्यास:

फ़िल्टर (फ़ंक्शन, चलने योग्य)

अब निम्नलिखित उदाहरण पर विचार करें:

उदाहरण:

my_list = [2,3,4,5,6,7,8] new_list = सूची (फ़िल्टर (लैम्ब्डा ए: (a / 3 == 2), my_list)) प्रिंट (new_list)

OUTPUT: [६]

यहाँ, my_list चलने योग्य मानों की एक सूची है, जो फ़िल्टर फ़ंक्शन को दी जाती है। यह फ़ंक्शन जाँच करने के लिए लंबो फ़ंक्शन का उपयोग करता है यदि सूची में कोई मान हैं, तो 3 से विभाजित होने पर 2 के बराबर होगा। आउटपुट में एक सूची शामिल होती है जो अनाम फ़ंक्शन के भीतर मौजूद अभिव्यक्ति को संतुष्ट करती है।

नक्शा():

पायथन में नक्शा () फ़ंक्शन एक फ़ंक्शन है जो सभी पुनरावृत्तियों में दिए गए फ़ंक्शन को लागू करता है और एक नई सूची देता है।

वाक्य - विन्यास:

नक्शा (कार्य, चलने योग्य)

आइए एक उदाहरण लेते हैं कि नक्शे के भीतर लंबो कार्यों के उपयोग को प्रदर्शित करने के लिए () फ़ंक्शन:

उदाहरण:

my_list = [2,3,4,5,6,7,8] new_list = सूची (नक्शा (लंबो a: (a / 3! = 2), li)) प्रिंट (new_list)

OUTPUT:

[सच्चा, सच्चा, सच्चा, सच्चा, झूठा, सच्चा, सच्चा]

उपरोक्त आउटपुट से पता चलता है कि, जब भी पुनरावृत्तियों का मूल्य 3 से विभाजित होने पर 2 के बराबर नहीं होता है, तो लौटा हुआ परिणाम सही होना चाहिए। इसलिए, my_list में सभी तत्वों के लिए, यह सही है कि वैल्यू 6 को छोड़कर, जब स्थिति झूठी बदल जाती है।

कम करना():

कम () फ़ंक्शन का उपयोग कुछ अन्य फ़ंक्शन को उन तत्वों की सूची में लागू करने के लिए किया जाता है जो इसे एक पैरामीटर के रूप में पारित करते हैं और अंत में एक एकल मान लौटाते हैं।

इस फ़ंक्शन का सिंटैक्स निम्नानुसार है:

वाक्य - विन्यास:

कम करना (कार्य, अनुक्रम)

उदाहरण:

जावा में स्कैनर वर्ग के तरीके
फंक्शनलूल आयात से घटा घटा (लंबो ए, बी: ए + बी, [२३,२३,४५, ९)])

उपरोक्त उदाहरण को निम्न छवि में दर्शाया गया है:

कम-पायथन लैम्बडा-एडुरका

OUTPUT: 187

आउटपुट स्पष्ट रूप से दिखाता है कि सूची के सभी तत्व हैं लगातार जोड़ा गया अंतिम परिणाम वापस करने के लिए।

इसके साथ, हम 'पायथन लैम्बडा' के इस लेख को समाप्त करते हैं। आशा है कि आप उन सभी के साथ स्पष्ट हैं जो आपके साथ साझा किए गए हैं। सुनिश्चित करें कि आप जितना संभव हो उतना अभ्यास करें और अपने अनुभव को वापस लाएं।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस 'पायथन लाम्बा' ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम आपको जल्द से जल्द वापस मिलेंगे।

अपने विभिन्न अनुप्रयोगों के साथ अजगर पर गहराई से ज्ञान प्राप्त करने के लिए, आप लाइव के लिए नामांकन कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ।