Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन लैम्ब्डा फंक्शन्स: एक परिचय

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


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

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

यह गाइड चर्चा करेगा कि पायथन में लैम्ब्डा फंक्शन्स का उपयोग करके दोहराव वाली प्रक्रियाओं को कैसे स्वचालित किया जाए। हम लैम्ब्डा फंक्शन के क्रिया में दो उदाहरण भी प्रदान करेंगे ताकि आपके पास अपना खुद का लिखने के लिए आवश्यक सभी सामग्री हो।

फंक्शन क्या है?

प्रोग्रामिंग में, एक फंक्शन कोड का एक ब्लॉक है जो एक विशिष्ट कार्य करता है।

कोडर्स द्वारा फंक्शन्स का उपयोग करने का एक बड़ा कारण यह है कि वे उनके कोड में पुनरावृत्ति को कम करने में मदद करते हैं। यदि आप एक प्रक्रिया को एक फंक्शन में बंडल करते हैं, तो आप इसे अपने प्रोग्राम में कहीं भी कॉल कर सकते हैं। आपको अपना कोड कई बार दोहराने की आवश्यकता नहीं है।

यह डेवलपर्स को अधिक रखरखाव योग्य कोड लिखने में भी मदद करता है। यदि आपको उस प्रक्रिया में बदलाव करने की आवश्यकता है, तो आपको केवल अपने फंक्शन को संशोधित करना होगा। आपको अपने प्रोग्राम में केवल कॉपी और पेस्ट की गई कोड की कई लाइनों में परिवर्तन करने की आवश्यकता नहीं है।

पायथन में एक फंक्शन का उदाहरण यहाँ दिया गया है:

def say_hello(name):
    print("Hello there, " + name)
say_hello("Arthur")

जब हम यह कोड चलाते हैं, तो निम्नलिखित लौटाया जाता है: Hello there, Arthur।

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

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

एक लैम्ब्डा फंक्शन एक प्रकार का फंक्शन है जिसे बिना नाम के परिभाषित किया जाता है। इन फंक्शन्स को कभी-कभी अनाम फंक्शन्स कहा जाता है, क्योंकि उन्हें नाम की आवश्यकता नहीं होती। जबकि हमारा पहले का फंक्शन sayHello नाम का था, और "def" का उपयोग करके परिभाषित किया गया था, एक लैम्ब्डा फंक्शन को नाम की आवश्यकता नहीं होती और इसे "lambda" का उपयोग करके परिभाषित किया जाता है।

लैम्ब्डा फंक्शन का उपयोग करने का मुख्य लाभ यह है कि इसे एक लाइन पर लिखा जा सकता है। यह लैम्ब्डा फंक्शन्स को उपयोगी बनाता है यदि आपके पास एक त्वरित प्रक्रिया है जिसे आप कई बार करना चाहते हैं। यहाँ कुछ उदाहरण हैं जहां लैम्ब्डा फंक्शन सहायक हो सकता है:

  • एक संख्या को गुणा करना
  • स्ट्रिंग को अपरकेस या लोअरकेस में बदलना
  • सूची को फ़िल्टर करना

पायथन में लैम्ब्डा फंक्शन बनाने का सिंटैक्स यहाँ दिया गया है:

name = lambda arguments: expression

आप लैम्ब्डा फंक्शन के साथ जितने चाहें उतने आर्ग्यूमेंट्स निर्दिष्ट कर सकते हैं। आइए एक उदाहरण के माध्यम से चलते हैं ताकि यह दिखाया जा सके कि पायथन में लैम्ब्डा फंक्शन कैसे काम करता है। मान लीजिए हम एक संख्या को सात से गुणा करना चाहते हैं। ऐसा करने के लिए, हम निम्न फंक्शन का उपयोग कर सकते हैं:

def multiply_by_seven(number):
    return number * 7
print(multiply_by_seven(2))

जब हम यह कोड चलाते हैं, तो निम्नलिखित लौटाया जाता है: 14।

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

यहाँ एक लैम्ब्डा फंक्शन है जो ऊपर के समान क्रिया करता है:

multiply_by_seven = lambda n: n * 7
print(multiply_by_seven(2))

हमारा कोड लौटाता है: 14। जैसा कि आप देख सकते हैं, हमारे फंक्शन का आउटपुट समान है। अंतर यह है कि हमने रेगुलर फंक्शन के बजाय लैम्ब्डा फंक्शन का उपयोग किया है। इस मामले में:

  • lambda कीवर्ड इंगित करता है कि हम एक लैम्ब्डा फंक्शन घोषित कर रहे हैं
  • n हमारे फंक्शन के लिए आर्ग्यूमेंट है।
  • n * 7 हमारे लैम्ब्डा फंक्शन के लिए निर्दिष्ट सिंगल एक्सप्रेशन है।

लैम्ब्डा फंक्शन्स कब उपयोग किए जाते हैं?

लैम्ब्डा फंक्शन्स के पायथन में उपयोग के मामलों की एक विस्तृत श्रृंखला है। हमारे पिछले उदाहरण में, हमने दिखाया कि आप दो संख्याओं को गुणा करने के लिए लैम्ब्डा फंक्शन का उपयोग कैसे कर सकते हैं। लेकिन, कुछ और सामान्य उपयोग के मामले हैं जिनके बारे में आपको पता होना चाहिए।

अक्सर, लैम्ब्डा फंक्शन्स का उपयोग reduce() फंक्शन, map() फंक्शन, या filter() फंक्शन जैसे बिल्ट-इन फंक्शन्स के साथ किया जाता है। लैम्ब्डा फंक्शन्स का उपयोग कभी-कभी दोहराव वाले कार्यों को करने के लिए लिस्ट कॉम्प्रिहेंशन के साथ भी किया जाता है।

मान लीजिए हमारे पास एक बेकरी है और हम अपने द्वारा बेचे जाने वाले सभी पाईज़ की सूची बनाना चाहते हैं जो हमारे द्वारा बेचे जाने वाले सभी बेक्ड गुड्स की सूची पर आधारित है। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone']
pies = filter(lambda pie: "Pie" in pie, baked_goods)
print(list(pies))

हमारा कोड लौटाता है:

['Apple Pie', 'Pecan Pie', 'Blackberry Pie']

आइए समझते हैं कि यह कैसे काम करता है। हमारे कोड की पहली लाइन पर, हमने बेक्ड गुड्स की एक सूची घोषित की। फिर, हमने filter() फंक्शन का उपयोग उन सभी बेक्ड गुड्स को फ़िल्टर आउट करने के लिए किया जिनमें शब्द "Pie" है। filter() फंक्शन ने हमें "baked_goods" सूची में हर आइटम के माध्यम से पुनरावृति करने और उन आइटम्स को फ़िल्टर आउट करने की अनुमति दी जो एक विशेष मानदंड को पूरा नहीं करते थे।

हमने एक लैम्ब्डा फंक्शन को परिभाषित करके ऐसा किया जो जांचता है कि क्या प्रत्येक स्ट्रिंग में "Pie" है, और केवल स्ट्रिंग को लौटाता है यदि उस स्ट्रिंग में "Pie" है। इस मामले में, हमारा लैम्ब्डा फंक्शन है:

lambda pie: "Pie" in pie

आप इस उदाहरण से देख सकते हैं कि पायथन लैम्ब्डा फंक्शन्स को नाम की आवश्यकता नहीं होती। वे इन-लाइन अस्तित्व में रह सकते हैं, पारंपरिक फंक्शन्स के विपरीत। यदि कोई आइटम हमारे मानदंडों को पूरा करता है, तो हमारा लैम्ब्डा एक्सप्रेशन true लौटाता है; अन्यथा, कोई मान नहीं लौटाया जाता।

अंत में, हम "pies" वेरिएबल को सूची में बदलते हैं और इसे कंसोल पर प्रिंट करते हैं। हम ऐसा इसलिए करते हैं क्योंकि filter() एक कस्टम फ़िल्टर ऑब्जेक्ट लौटाता है, इसलिए अपने पाईज़ को देखने के लिए, हमें इसे list() का उपयोग करके बदलने की आवश्यकता है।

निष्कर्ष

लैम्ब्डा फंक्शन्स, जिन्हें अनाम फंक्शन्स भी कहा जाता है, आपको बिना नाम के एक फंक्शन को परिभाषित करने की अनुमति देते हैं। वे उपयोगी हैं यदि आपको अपने कोड में किसी क्रिया को कई बार करने की आवश्यकता है।

उदाहरण के लिए, यदि आपको एक संख्या को दूसरी संख्या से गुणा करने की आवश्यकता है, तो आप लैम्ब्डा फंक्शन का उपयोग कर सकते हैं; या आप सूची में आइटम्स को फ़िल्टर आउट करने के लिए लैम्ब्डा फंक्शन का उपयोग कर सकते हैं।

  1. पायथन में ट्किंटर बटन कमांड्स के साथ लैम्ब्डा पायथन में ट्किंटर बटन कमांड्स के साथ लैम्ब्डा

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

  1. पायथन में issubset() फंक्शन पायथन में issubset() फंक्शन

    इस लेख में, हम पायथन स्टैंडर्ड लाइब्रेरी में उपलब्ध issubset() फंक्शन के कार्यान्वयन और उपयोग के बारे में जानेंगे।issubset() मेथड बूलियन True वापस करता है जब एक सेट के सभी तत्व दूसरे सेट में मौजूद होते हैं (जिसे तर्क के रूप में पारित किया जाता है) अन्यथा, यह बूलियन False वापस करता है।नीचे दिए गए चित

  1. पायथन में intersection() फ़ंक्शन पायथन में intersection() फ़ंक्शन

    इस लेख में, हम intersection() फ़ंक्शन के बारे में सीखेंगे जिसे किसी भी दिए गए सेट पर किया जा सकता है। गणित के अनुसार, intersection का अर्थ दो सेट्स से सामान्य तत्वों को ढूंढना है। सिंटैक्स .intersection( ...) वापसी मान तर्क के रूप में पास किए गए सेट्स में सामान्य तत्व। उदाहरण set_1 = {t,u,t,o