Python लैम्ब्डा फ़ंक्शन उदाहरणों के साथ

⚡ स्मार्ट सारांश

लैम्डा फ़ंक्शन में Python ये छोटे अनाम फ़ंक्शन होते हैं जिन्हें def की जगह lambda कीवर्ड के साथ परिभाषित किया जाता है। इनमें एक ही एक्सप्रेशन होता है, ये कितने भी आर्गुमेंट ले सकते हैं, और अक्सर इन्हें map(), filter() और sorted() जैसे बिल्ट-इन फ़ंक्शन में सीधे पास किया जाता है।

  • 🔑 लैम्डा कीवर्ड: लैम्डा को लैम्डा आर्गुमेंट्स: एक्सप्रेशन के रूप में लिखा जाता है, जिसमें कोई परिभाषा, कोई नाम और कोई स्पष्ट रिटर्न स्टेटमेंट नहीं होता है।
  • 🧮 एकल अभिव्यक्ति: बॉडी में केवल एक ही एक्सप्रेशन होता है जिसका मान स्वचालित रूप से लौटाया जाता है, इसलिए स्टेटमेंट और एकाधिक लाइनें अनुमत नहीं हैं।
  • 🔗 अंतर्निर्मित पेयरिंग: लैम्डा को आमतौर पर map(), filter(), reduce() और sorted() में पास किया जाता है ताकि अनुक्रम में आइटम को रूपांतरित या चयनित किया जा सके।
  • आईएफई: लैम्डा को पैटर्न (lambda x: x + x)(2) का उपयोग करके तुरंत परिभाषित और कॉल किया जा सकता है, जो तुरंत परिणाम लौटाता है।
  • बनाम की परिभाषा: नियमित फ़ंक्शंस को एक नाम की आवश्यकता होती है और उनमें कई कथन हो सकते हैं, जबकि लैम्डा उस शक्ति के बदले संक्षिप्त, एक-पंक्ति वाले सिंटैक्स का उपयोग करते हैं।
  • 🤖 एआई सहायता: GitHub Copilot जैसे AI सहायक एक छोटे से संकेत से मैप, फ़िल्टर और सॉर्ट कुंजियों के लिए लैम्डा एक्सप्रेशन उत्पन्न करते हैं।

Python लंबोदर कार्य

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

A लैम्ब्डा फ़ंक्शन Python प्रोग्रामिंग एक अनाम फ़ंक्शन या ऐसा फ़ंक्शन है जिसका कोई नाम नहीं है। यह एक छोटा और प्रतिबंधित फ़ंक्शन है जिसमें एक से ज़्यादा लाइन नहीं होती। एक सामान्य फ़ंक्शन की तरह, एक लैम्ब्डा फ़ंक्शन में एक अभिव्यक्ति के साथ कई तर्क हो सकते हैं।

In Python, लैम्ब्डा एक्सप्रेशन (या लैम्ब्डा फॉर्म) का उपयोग अनाम फ़ंक्शन बनाने के लिए किया जाता है। ऐसा करने के लिए, आप इसका उपयोग करेंगे लैम्ब्डा कीवर्ड (जैसा कि आप उपयोग करते हैं डीईएफ़ सामान्य फ़ंक्शन को परिभाषित करने के लिए)। आपके द्वारा परिभाषित प्रत्येक अनाम फ़ंक्शन Python इसके 3 आवश्यक भाग होंगे:

  • लैम्ब्डा कीवर्ड.
  • पैरामीटर (या बाउंड वैरिएबल), और
  • कार्य निकाय.

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

वाक्यविन्यास और उदाहरण

लैम्ब्डा फ़ंक्शन लिखने का औपचारिक सिंटैक्स नीचे दिया गया है:

lambda p1, p2: expression

यहाँ, p1 और p2 वे पैरामीटर हैं जो लैम्ब्डा फ़ंक्शन को पास किए जाते हैं। आप अपनी ज़रूरत के अनुसार ज़्यादा या कम पैरामीटर जोड़ सकते हैं।

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

उदाहरण 1

अब जब आप लैम्बडा के बारे में जानते हैं तो चलिए इसे एक उदाहरण के साथ आज़माते हैं। तो, अपना खोलें IDLE और निम्नलिखित टाइप करें:

adder = lambda x, y: x + y
print (adder (1, 2))

Code व्याख्या

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

1. लैम्ब्डा कीवर्ड का उपयोग अनाम फ़ंक्शन को परिभाषित करने के लिए किया जाता है।

2. x और y वे पैरामीटर हैं जिन्हें हम लैम्ब्डा फ़ंक्शन में पास करते हैं।

3. यह फ़ंक्शन का मुख्य भाग है, जो हमारे द्वारा पास किए गए 2 पैरामीटर जोड़ता है। ध्यान दें कि यह एक एकल अभिव्यक्ति है। आप लैम्ब्डा फ़ंक्शन के मुख्य भाग में कई कथन नहीं लिख सकते।

4. हम फ़ंक्शन को कॉल करते हैं और लौटाए गए मान को प्रिंट करते हैं।

उदाहरण 2

यह लैम्डा के मूल सिद्धांतों और सिंटैक्स को समझने के लिए एक बुनियादी उदाहरण था। आइए अब एक लैम्डा को प्रिंट करके परिणाम देखें। फिर से, अपना खोलें IDLE और निम्नलिखित टाइप करें:

#What a lambda returns
string='some kind of a useless lambda'
print(lambda string : print(string))

अब अपनी फ़ाइल को सेव करें और प्रोग्राम को चलाने के लिए F5 दबाएँ। यह वह आउटपुट है जो आपको मिलना चाहिए।

आउटपुट:

<function <lambda> at 0x00000185C3BF81E0>

यहां क्या हो रहा है? आइए इसे और समझने के लिए कोड को देखें।

Code स्पष्टीकरण:

1. यहाँ, हम एक को परिभाषित करते हैं स्ट्रिंग जिसे आप लैम्डा को पैरामीटर के रूप में पास करेंगे।

2. हम एक लैम्डा स्टेटमेंट घोषित करते हैं जो एक प्रिंट स्टेटमेंट को कॉल करता है और परिणाम प्रिंट करता है।

लेकिन प्रोग्राम हमारे द्वारा पास की गई स्ट्रिंग को प्रिंट क्यों नहीं करता? इसका कारण यह है कि लैम्डा स्वयं एक फ़ंक्शन ऑब्जेक्ट लौटाता है। इस उदाहरण में, लैम्डा को प्रिंट नहीं किया जा रहा है। बुलाया प्रिंट फ़ंक्शन द्वारा लेकिन यह बस लौटने फंक्शन ऑब्जेक्ट और वह मेमोरी लोकेशन जहां वह स्टोर होता है। यही कंसोल पर प्रिंट होता है।

उदाहरण 3

हालाँकि, यदि आप इस तरह का प्रोग्राम लिखते हैं:

#What a lambda returns #2
x="some kind of a useless lambda"
(lambda x : print(x))(x)

और F5 दबाकर इसे चलाएं, आपको इस तरह का आउटपुट दिखाई देगा।

आउटपुट:

some kind of a useless lambda

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

Code स्पष्टीकरण:

1. यह वही स्ट्रिंग है जिसे हमने पिछले उदाहरण में परिभाषित किया था।

2. इस भाग में, हम एक लैम्डा को परिभाषित कर रहे हैं और स्ट्रिंग को आर्गुमेंट के रूप में पास करके इसे तुरंत कॉल कर रहे हैं। इसे आईएफ़ई कहा जाता है, और आप इस ट्यूटोरियल के आगामी अनुभागों में इसके बारे में और जानेंगे।

उदाहरण 4

आइए, लैम्डा और सामान्य फ़ंक्शन कैसे निष्पादित होते हैं, इसे समझने के लिए एक अंतिम उदाहरण देखें। तो, अपना खोलें IDLE और एक नई फ़ाइल में, निम्नलिखित टाइप करें:

#A REGULAR FUNCTION
def guru( funct, *args ):
funct( *args )
def printer_one( arg ):
return print (arg)
def printer_two( arg ):
print(arg)
#CALL A REGULAR FUNCTION 
guru( printer_one, 'printer 1 REGULAR CALL' )
guru( printer_two, 'printer 2 REGULAR CALL \n' )
#CALL A REGULAR FUNCTION THRU A LAMBDA
guru(lambda: printer_one('printer 1 LAMBDA CALL'))
guru(lambda: printer_two('printer 2 LAMBDA CALL'))

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

आउटपुट:

printer 1 REGULAR CALL

printer 2 REGULAR CALL

printer 1 LAMBDA CALL

printer 2 LAMBDA CALL

Code स्पष्टीकरण:

1. गुरु नामक एक फ़ंक्शन जो पहले पैरामीटर के रूप में एक अन्य फ़ंक्शन और उसके बाद के किसी भी अन्य तर्क को स्वीकार करता है।

2. printer_one एक सरल फ़ंक्शन है जो इसे दिए गए पैरामीटर को प्रिंट करता है और उसे वापस लौटाता है।

3. printer_two, printer_one के समान है लेकिन इसमें रिटर्न स्टेटमेंट नहीं है।

4. इस भाग में, हम गुरु फ़ंक्शन को कॉल कर रहे हैं और प्रिंटर फ़ंक्शन और एक स्ट्रिंग को पैरामीटर के रूप में पास कर रहे हैं।

5. यह चौथे चरण (अर्थात गुरु फ़ंक्शन को कॉल करना) को पूरा करने के लिए लैम्डा का उपयोग करने का सिंटैक्स है।

अगले भाग में, आप सीखेंगे कि लैम्ब्डा फ़ंक्शन का उपयोग कैसे करें नक्शा(), कम करना(), तथा फिल्टर () in Python.

लैम्ब्डा का उपयोग करना Python बनाया-इन

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

आईआईएफई में Python lambda

आईआईएफई के लिए खड़ा है तुरंत फ़ंक्शन निष्पादन लागू किया गया. इसका मतलब है कि लैम्डा फ़ंक्शन को परिभाषित होते ही कॉल किया जा सकता है। आइए इसे एक उदाहरण से समझते हैं; अपनी फ़ाइल खोलें। IDLE और निम्नलिखित टाइप करें:

 (lambda x: x + x)(2)

आउटपुट और कोड स्पष्टीकरण इस प्रकार है:

लैम्बडा को तुरंत लागू करने की यह क्षमता आपको उन्हें map() और reduce() जैसे फ़ंक्शन के अंदर उपयोग करने की अनुमति देती है। यह उपयोगी है क्योंकि आप इन फ़ंक्शन का फिर से उपयोग नहीं करना चाहेंगे।

फ़िल्टर में लैम्ब्डा()

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

चयनित होने वाले तत्व कुछ पूर्व-परिभाषित बाधाओं पर आधारित होते हैं। यह 2 पैरामीटर लेता है:

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

उदाहरण के लिए,

sequences = [10,2,8,7,5,4,3,11,0, 1]
filtered_result = filter (lambda x: x > 4, sequences) 
print(list(filtered_result))

यहाँ उत्पादन है:

[10, 8, 7, 5, 11]

Code स्पष्टीकरण:

1. पहले कथन में, हम अनुक्रम नामक एक सूची परिभाषित करते हैं जिसमें कुछ संख्याएँ होती हैं।

2. यहां, हम फ़िल्टर्ड_रिजल्ट नामक एक वेरिएबल घोषित करते हैं, जो फ़िल्टर() फ़ंक्शन द्वारा लौटाए गए फ़िल्टर किए गए मानों को संग्रहीत करेगा।

3. एक लैम्ब्डा फ़ंक्शन जो सूची के प्रत्येक तत्व पर चलता है और यदि यह 4 से अधिक है तो सत्य लौटाता है।

4. फ़िल्टर फ़ंक्शन द्वारा लौटाए गए परिणाम को प्रिंट करें.

मानचित्र में लैम्ब्डा()

map फ़ंक्शन का उपयोग किसी अनुक्रम के प्रत्येक तत्व पर एक विशेष क्रिया लागू करने के लिए किया जाता है। filter() की तरह, यह भी 2 पैरामीटर लेता है:

  1. एक फ़ंक्शन जो तत्वों पर निष्पादित की जाने वाली क्रिया को परिभाषित करता है
  2. एक या अधिक अनुक्रम

उदाहरण के लिए, यहाँ एक प्रोग्राम है जो दी गई सूची में संख्याओं के वर्गों को प्रिंट करता है:

sequences = [10,2,8,7,5,4,3,11,0, 1]
filtered_result = map (lambda x: x*x, sequences) 
print(list(filtered_result))

आउटपुट:

 [100, 4, 64, 49, 25, 16, 9, 121, 0, 1]

Code स्पष्टीकरण:

1. यहां, हम अनुक्रम नामक एक सूची को परिभाषित करते हैं जिसमें कुछ संख्याएँ होती हैं।

2. हम filtered_result नामक एक वेरिएबल घोषित करते हैं जो मैप किए गए मानों को संग्रहीत करेगा।

3. एक लैम्डा फ़ंक्शन जो सूची के प्रत्येक तत्व पर चलता है और उस संख्या का वर्ग लौटाता है।

4. मैप फ़ंक्शन द्वारा लौटाए गए परिणाम को प्रिंट करें।

कम करने में लैम्ब्डा()

मैप() की तरह रिड्यूस फ़ंक्शन का उपयोग अनुक्रम में प्रत्येक तत्व पर एक ऑपरेशन लागू करने के लिए किया जाता है। हालाँकि, यह अपने काम में मैप से अलग है। आउटपुट की गणना करने के लिए रिड्यूस() फ़ंक्शन द्वारा अपनाए जाने वाले चरण ये हैं:

चरण 1) अनुक्रम के पहले 2 तत्वों पर निर्धारित ऑपरेशन निष्पादित करें।

चरण 2) इस परिणाम को सहेजें।

चरण 3) सहेजे गए परिणाम और अनुक्रम में अगले तत्व के साथ ऑपरेशन निष्पादित करें।

चरण 4) तब तक दोहराएं जब तक कोई और तत्व शेष न बचे।

इसमें भी दो पैरामीटर होते हैं:

  1. एक फ़ंक्शन जो निष्पादित किए जाने वाले ऑपरेशन को परिभाषित करता है
  2. एक अनुक्रम (कोई भी पुनरावर्तक जैसे सूची, टपल, आदि)

उदाहरण के लिए, यहाँ एक प्रोग्राम है जो सूची में सभी तत्वों का गुणनफल लौटाता है:

from functools import reduce
sequences = [1,2,3,4,5]
product = reduce (lambda x, y: x*y, sequences)
print(product)

यहाँ उत्पादन है:

120

Code स्पष्टीकरण:

1. functools मॉड्यूल से reduce को इम्पोर्ट करें।

2. यहां, हम अनुक्रम नामक एक सूची को परिभाषित करते हैं जिसमें कुछ संख्याएँ होती हैं।

3. हम product नामक एक वेरिएबल घोषित करते हैं जो कम किए गए मान को संग्रहीत करेगा।

4. एक लैम्डा फ़ंक्शन जो सूची के प्रत्येक तत्व पर चलता है। यह पिछले परिणाम के अनुसार उस संख्या का गुणनफल लौटाएगा।

5. रिड्यूस फ़ंक्शन द्वारा लौटाए गए परिणाम को प्रिंट करें।

लैम्ब्डा फ़ंक्शन का उपयोग क्यों करें (और क्यों नहीं)?

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

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

लैम्डा का सबसे आम उपयोग कार्यात्मक प्रोग्रामिंग में होता है, जैसा कि Python प्रोग्रामिंग के एक प्रतिमान (या शैली) का समर्थन करता है जिसे कार्यात्मक प्रोग्रामिंग के रूप में जाना जाता है।

यह आपको एक फ़ंक्शन को दूसरे फ़ंक्शन के पैरामीटर के रूप में प्रदान करने की अनुमति देता है (उदाहरण के लिए, मैप, फ़िल्टर आदि में)। ऐसे मामलों में, लैम्डा का उपयोग एक बार उपयोग होने वाले फ़ंक्शन को बनाने और उसे पैरामीटर के रूप में पास करने का एक शानदार तरीका प्रदान करता है।

आपको लैम्ब्डा का उपयोग कब नहीं करना चाहिए?

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

लैम्ब्डा बनाम नियमित फ़ंक्शन

जैसा कि पहले बताया गया है, लैम्डा फ़ंक्शन ऐसे फ़ंक्शन होते हैं जिनका कोई पहचानकर्ता नहीं होता। सरल शब्दों में कहें तो, ये बिना नाम वाले फ़ंक्शन होते हैं (इसलिए इन्हें अनाम कहा जाता है)। लैम्डा और सामान्य फ़ंक्शन के बीच अंतर को दर्शाने के लिए यहाँ एक तालिका दी गई है। Python.

lambdas नियमित कार्य
सिंटेक्स:

lambda x : x + x
सिंटेक्स:

def (x) :
return x + x 
लैम्ब्डा फ़ंक्शन के मुख्य भाग में केवल एक ही अभिव्यक्ति हो सकती है। नियमित कार्यों में अनेक अभिव्यक्तियाँ और कथन हो सकते हैं।
लैम्डा फ़ंक्शन का कोई नाम नहीं होता। इसीलिए इन्हें अनाम फ़ंक्शन भी कहा जाता है। नियमित कार्यों में नाम और हस्ताक्षर होना चाहिए।
लैम्ब्डा में रिटर्न स्टेटमेंट नहीं होता क्योंकि बॉडी स्वचालित रूप से वापस आ जाती है। जिन फंक्शन्स को कोई वैल्यू रिटर्न करनी होती है, उनमें रिटर्न स्टेटमेंट शामिल होना चाहिए।

मतभेदों की व्याख्या

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

उपरोक्त उदाहरण के लिए एक नियमित फ़ंक्शन इस तरह दिखेगा:

def adder (x, y):
return x + y 
print (adder (1, 2))

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

हालाँकि, आप अभी भी सोच रहे होंगे कि लैम्बडा किसी ऐसे फ़ंक्शन से कैसे अलग है जो एक ही एक्सप्रेशन लौटाता है (जैसे कि ऊपर वाला)। इंटरप्रेटर स्तर पर, बहुत ज़्यादा अंतर नहीं है। यह आश्चर्यजनक लग सकता है, लेकिन कोई भी लैम्बडा फ़ंक्शन जिसे आप परिभाषित करते हैं Python दुभाषिया द्वारा इसे एक सामान्य कार्य के रूप में माना जाता है।

बाइटकोड स्तर पर, दोनों परिभाषाओं को एक ही तरीके से संभाला जाता है। Python दुभाषिया। अब, आप किसी फ़ंक्शन का नाम नहीं रख सकते। लैम्ब्डा क्योंकि यह आरक्षित है Pythonलेकिन किसी भी अन्य फ़ंक्शन नाम से समान बाइटकोड प्राप्त होगा।

अक्सर पूछे जाने वाले प्रश्न

जी हां। लैम्डा में सशर्त अभिव्यक्ति का उपयोग किया जा सकता है, जैसे कि lambda x: 'even' if x % 2 == 0 else 'odd'। इसमें पूर्ण if स्टेटमेंट नहीं हो सकता, क्योंकि लैम्डा का बॉडी स्टेटमेंट के ब्लॉक के बजाय एक एकल अभिव्यक्ति होना चाहिए।

सामान्यतः नहीं। PEP 8 किसी फ़ंक्शन को नाम देने के लिए def का उपयोग करने की सलाह देता है, क्योंकि लैम्डा को किसी वेरिएबल से जोड़ने पर उसे नाम तो मिल जाता है, लेकिन स्पष्टता खो जाती है। tracयह परिभाषा प्रदान करती है। लैम्डा को सीधे sorted(), map() या filter() जैसे फ़ंक्शन में पास करना सबसे अच्छा होता है।

नहीं। बाइटकोड स्तर पर Python यह लैम्डा और उसके समतुल्य डेफ को एक ही तरह से मानता है, इसलिए गति में कोई लाभ नहीं होता। लैम्डा केवल कोड की एक पंक्ति बचाता है; यह समान कार्य करने वाले नाम वाले फ़ंक्शन की तुलना में तेज़ी से निष्पादित नहीं होता है।

जी हां। लैम्डा लूप क्लोजर बनाते हुए एनक्लोजिंग स्कोप से वेरिएबल्स को पढ़ सकता है। लूप के अंदर सावधान रहें: लैम्डा वेरिएबल को कैप्चर करता है, न कि उसके वर्तमान मान को, इसलिए इसे फ्रीज करने के लिए lambda x, n=n: x + n जैसे डिफ़ॉल्ट आर्गुमेंट का उपयोग करें।

sorted() या list.sort() फ़ंक्शन में key आर्गुमेंट के रूप में एक लैम्डा पास करें। उदाहरण के लिए, sorted(users, key=lambda u: u['age']) आइटम को उम्र के अनुसार क्रमबद्ध करता है। लैम्डा यह बताता है कि आइटम को किस क्रम में व्यवस्थित करना है। Python प्रत्येक तत्व के लिए किस मान की तुलना करनी है, जिससे अलग से नामित फ़ंक्शन के बिना संक्षिप्त कस्टम सॉर्टिंग संभव हो सके।

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

लैम्डा AI और मशीन लर्निंग कोड में त्वरित, इनलाइन रूपांतरणों को शक्ति प्रदान करते हैं। डेटा वैज्ञानिक डेटा को साफ करने या उसका आकार बदलने के लिए उन्हें पांडा के .apply(), map() और filter() फ़ंक्शन में पास करते हैं, और सुविधाओं को सॉर्ट करने के लिए प्रमुख फ़ंक्शन के रूप में उपयोग करते हैं।ping बड़े प्रशिक्षण पाइपलाइनों के भीतर प्रीप्रोसेसिंग को कॉम्पैक्ट बनाना।

GitHub Copilot एक संक्षिप्त टिप्पणी या आस-पास के कोड से संपूर्ण लैम्डा एक्सप्रेशन सुझाता है, जिसमें map(), filter(), या sorted() कॉल के लिए सही पैरामीटर और एक्सप्रेशन शामिल होते हैं। यह पठनीयता महत्वपूर्ण होने पर एक विस्तृत लैम्डा को एक स्पष्ट नाम वाले फ़ंक्शन में परिवर्तित करने का सुझाव भी दे सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: