{count, plural, one {कोर्स} other {कोर्स}}
आप def कीवर्ड, फ़ंक्शन हेडर, डॉकस्ट्रिंग्स और फ़ंक्शन बॉडी का उपयोग करके अपने खुद के Python फ़ंक्शन लिख सकते हैं। हालांकि, चलते-फिरते फ़ंक्शन लिखने का एक तेज़ तरीका भी है, जिन्हें lambda फ़ंक्शन कहा जाता है क्योंकि आप lambda कीवर्ड का उपयोग करते हैं।
कुछ फ़ंक्शन परिभाषाएँ इतनी सरल होती हैं कि उन्हें lambda फ़ंक्शन में बदला जा सकता है। ऐसा करने से आप कम पंक्तियों में कोड लिखते हैं, जो काफ़ी बढ़िया है और खासकर तब काम आता है जब आप बड़े प्रोग्राम लिख रहे हों और उन्हें मेंटेन कर रहे हों।
lambda फ़ंक्शन
यहाँ हम अपने फ़ंक्शन raise_to_power को एक lambda फ़ंक्शन के रूप में दोबारा लिखते हैं। lambda कीवर्ड के बाद, हम आर्गुमेंट्स के नाम बताते हैं; फिर, हम एक कोलन लगाते हैं जिसके बाद वह एक्सप्रेशन आता है जो बताता है कि फ़ंक्शन क्या रिटर्न करेगा।
raise_to_power = lambda x, y: x ** y
raise_to_power(2, 3)
8
जैसा बताया गया है, lambda फ़ंक्शन आपको जल्दी और सीधे तरीके से फ़ंक्शन लिखने देते हैं, इसलिए हम आपको उन्हें हर समय इस्तेमाल करने की सलाह नहीं देंगे, लेकिन कुछ स्थितियों में ये काफ़ी काम आते हैं, जैसे नीचे दिए गए उदाहरण में।
map() और lambda फ़ंक्शन
map फ़ंक्शन दो आर्गुमेंट्स लेता है: एक फ़ंक्शन और एक सीक्वेंस जैसे कि लिस्ट, और उस सीक्वेंस के सभी एलिमेंट्स पर फ़ंक्शन अप्लाई करता है। हम map को lambda फ़ंक्शन भी पास कर सकते हैं, बिना उन्हें कोई नाम दिए; ऐसे में हम उन्हें एनॉनिमस फ़ंक्शन्स कहते हैं।
इस उदाहरण में, हम map() को एक lambda फ़ंक्शन के साथ उपयोग करते हैं, जो लिस्ट के सभी एलिमेंट्स का वर्ग करता है, और परिणाम को square_all में स्टोर करते हैं।
nums = [48, 6, 9, 21, 1]
square_all = map(lambda num: num ** 2, nums)
print(square_all)
<map object at 0x103e065c0>
square_all को प्रिंट करने पर पता चलता है कि यह एक map ऑब्जेक्ट है, तो यह देखने के लिए कि यह क्या रिटर्न करता है, हम इसे list में बदलते हैं और परिणाम प्रिंट करते हैं।
print(list(square_all))
[2304, 36, 81, 441, 1]
एक lambda फ़ंक्शन लिखने का इंटरैक्टिव उदाहरण
नीचे दिया गया फ़ंक्शन echo_word दो पैरामीटर लेता है: एक स्ट्रिंग मान word1 और एक पूर्णांक मान echo। यह एक स्ट्रिंग रिटर्न करता है जो word1 की echo प्रतियों का संयोजन होता है।
आप ऊपर दिए गए इस सरल फ़ंक्शन को एक lambda फ़ंक्शन में बदलेंगे।
def echo_word(word1, echo):
"""Concatenate echo copies of word1."""
words = word1 * echo
return words
निम्न उदाहरण में, आप यह करेंगे:
- वेरिएबल्स
word1औरechoका उपयोग करते हुए एक lambda फ़ंक्शनecho_wordपरिभाषित करें। ऊपर दिए गएecho_word()के मूल फ़ंक्शन परिभाषा जैसा ही कार्य करें। - स्ट्रिंग आर्गुमेंट
'hey'और मान5के साथ, उसी क्रम में,echo_word()को कॉल करें। कॉल कोresultमें असाइन करें। अंत में,resultवेरिएबल प्रिंट करें।
# Define echo_word as a lambda function: echo_word
echo_word = (lambda word1, echo: word1 * echo)
# Call echo_word: result
result = echo_word('hey', 5)
# Print result
print(result)
जब हम ऊपर का कोड चलाते हैं, तो यह निम्न परिणाम देता है:
heyheyheyheyhey
Lambda फ़ंक्शन्स के बारे में और जानने के लिए, हमारे कोर्स Python Data Science Toolbox (Part 1) का यह वीडियो देखें।
यह सामग्री DataCamp के कोर्स Python Data Science Toolbox (Part 1) से ली गई है, लेखक Hugo Bowne-Anderson।
DataCamp का Python Functions ट्यूटोरियल देखें।