पायथन लैम्ब्डा फंक्शन्स को समझने के लिए एक शुरुआती गाइड

पायथन लैम्ब्डा फंक्शन्स को समझने के लिए एक शुरुआती गाइड

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





इस लेख में, हम आपको इन रहस्यमय कार्यों के बारे में जानने के लिए आवश्यक सब कुछ समझाने जा रहे हैं, उनका उपयोग कैसे करें, और वे क्यों उपयोगी हैं।





इन व्यावहारिक उदाहरणों में गोता लगाने से पहले, आप एक पायथन आभासी वातावरण स्थापित करना चाह सकते हैं। अगर आप भी ऐसा नहीं करना चाहते हैं, तो आपको कम से कम इन उदाहरणों को आजमाना चाहिए एक इंटरैक्टिव ऑनलाइन पायथन शेल के साथ .





पायथन में लैम्ब्डा क्या है?

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

यदि आपने पहले पायथन का उपयोग किया है, तो संभवतः आपने का उपयोग करके अपने कार्यों को परिभाषित किया है डीईएफ़ कीवर्ड, और यह अब तक आपके लिए ठीक काम कर रहा है। तो वही काम करने का दूसरा तरीका क्यों है?



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

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





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

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

लैम्ब्डा फ़ंक्शन को देखने से पहले, आइए 'पारंपरिक' तरीके से परिभाषित एक सुपर बेसिक फ़ंक्शन को देखें:





def add_five(number):
return number + 5

print(add_five(number=4))

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

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

add_five = lambda number: number + 5

print(add_five(number=4))

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

का उपयोग करने की कोई आवश्यकता नहीं है वापसी कीवर्ड --- लैम्ब्डा यह आपके लिए स्वचालित रूप से करता है।

यहां बताया गया है कि आप दो तर्कों के साथ लैम्ब्डा फ़ंक्शन कैसे बनाएंगे:

आईफोन पर डुप्लीकेट फोटो कैसे डिलीट करें
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

print(add_numbers_and_five(number1=4, number2=3))

यदि आप अभी भी लैम्ब्डा के बिंदु के बारे में अनिश्चित हैं, तो अगला भाग प्रकाश को देखने में आपकी सहायता करेगा।

मानचित्र, फ़िल्टर और कम करने के साथ पायथन लैम्बडास

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

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

लैम्ब्डा के बिना मानचित्र का उपयोग करने का तरीका यहां दिया गया है:

list1 = [2, 4, 6, 8]
print(list1)
def add_five(number):
return number + 5

new_list = list(map(add_five, list1))
print(new_list)

यह मैप फंक्शन काफी आसान है, लेकिन यह बेहतर हो सकता है। NS add_five फ़ंक्शन को एक तर्क के रूप में पारित किया जाता है, लेकिन क्या होगा यदि आप हर बार मानचित्र का उपयोग करने पर कोई फ़ंक्शन नहीं बनाना चाहते हैं? आप इसके बजाय लैम्ब्डा का उपयोग कर सकते हैं!

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

वर्ड में अतिरिक्त पेज से कैसे छुटकारा पाएं
list1 = [2, 4, 6, 8]
print(list1)

new_list = list(map(lambda x: x + 5, list1))
print(new_list)

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

उसके साथ फिल्टर समारोह, प्रक्रिया काफी समान है। फ़िल्टर एक फ़ंक्शन लेता है और इसे सूची में प्रत्येक तत्वों पर लागू करता है और केवल उन तत्वों के साथ एक नई सूची बनाता है जो फ़ंक्शन को सही लौटाते हैं।

सबसे पहले, लैम्ब्डा के बिना:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
def greater_than_ten_func(number):
if number > 10:
return True
else:
return False
new_numbers = list(filter(greater_than_ten_func, numbers))

print(new_numbers)

इस कोड में कुछ भी गलत नहीं है, लेकिन यह थोड़ा लंबा हो रहा है। आइए देखें कि लैम्ब्डा कितनी लाइनें हटा सकता है:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
new_numbers = list(filter(lambda x: x > 10, numbers))
print(new_numbers)

लैम्ब्डा फ़ंक्शन ने संपूर्ण की आवश्यकता को बदल दिया है ग्रेटर_थान_टेन_फंक ! और इसे पाँच सरल शब्दों में किया है। यही कारण है कि लैम्ब्डा शक्तिशाली होते हैं: वे सरल कार्यों के लिए अव्यवस्था को कम करते हैं।

अंत में, आइए देखें कम करना . कम करें एक और अच्छा पायथन फ़ंक्शन है। यह एक सूची में सभी मदों के लिए एक रोलिंग गणना लागू करता है। आप इसका उपयोग कुल योग का मिलान करने या सभी संख्याओं को एक साथ गुणा करने के लिए कर सकते हैं:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)
def summer(a, b):
return a + b

result = reduce(summer, numbers)
print(result)

इस उदाहरण को आयात करने की आवश्यकता है कम करना से कार्य उपकरण मॉड्यूल, लेकिन चिंता न करें, functools मॉड्यूल पायथन कोर लाइब्रेरी का हिस्सा है।

लैम्ब्डा के साथ कहानी बहुत समान है, किसी फ़ंक्शन की कोई आवश्यकता नहीं है:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)

result = reduce(lambda a, b: a + b, numbers)
print(result)

पायथन लैम्बडास के साथ देखने योग्य बातें

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

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

अधिक युक्तियों के लिए, हमारी जाँच करें पायथन में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के लिए गाइड और पायथन शुरुआती के लिए हमारे अक्सर पूछे जाने वाले प्रश्न मार्गदर्शिका देखें।

साझा करना साझा करना कलरव ईमेल यह जांचने के 3 तरीके हैं कि कोई ईमेल असली है या नकली

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

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • अजगर
  • कोडिंग ट्यूटोरियल
लेखक के बारे में जो कोबर्न(136 लेख प्रकाशित)

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

जो कोबर्न . की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें