आप def कीवर्ड, फ़ंक्शन हेडर, डॉकस्ट्रिंग्स और फ़ंक्शन बॉडी का उपयोग करके अपने खुद के Python फ़ंक्शन लिख सकते हैं। हालांकि, चलते-फिरते फ़ंक्शन लिखने का एक तेज़ तरीका भी है, जिन्हें lambda फ़ंक्शन कहा जाता है क्योंकि आप lambda कीवर्ड का उपयोग करते हैं।
कुछ फ़ंक्शन परिभाषाएँ इतनी सरल होती हैं कि उन्हें lambda फ़ंक्शन में बदला जा सकता है। ऐसा करने से आप कम पंक्तियों में कोड लिखते हैं, जो काफ़ी बढ़िया है और खासकर तब काम आता है जब आप बड़े प्रोग्राम लिख रहे हों और उन्हें मेंटेन कर रहे हों।
lambda फ़ंक्शन
यहाँ हम अपने फ़ंक्शन raise_to_power को एक lambda फ़ंक्शन के रूप में दोबारा लिखते हैं। lambda कीवर्ड के बाद, हम आर्गुमेंट्स के नाम बताते हैं; फिर, हम एक कोलन लगाते हैं जिसके बाद वह एक्सप्रेशन आता है जो बताता है कि फ़ंक्शन क्या रिटर्न करेगा।
raise_to_power =lambda x, y: x ** y
raise_to_power(2,3)संचालित द्वारा
जैसा बताया गया है, 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)संचालित द्वारा
square_all को प्रिंट करने पर पता चलता है कि यह एक map ऑब्जेक्ट है, तो यह देखने के लिए कि यह क्या रिटर्न करता है, हम इसे list में बदलते हैं और परिणाम प्रिंट करते हैं।
नीचे दिया गया फ़ंक्शन echo_word दो पैरामीटर लेता है: एक स्ट्रिंग मान word1 और एक पूर्णांक मान echo। यह एक स्ट्रिंग रिटर्न करता है जो word1 की echo प्रतियों का संयोजन होता है।
आप ऊपर दिए गए इस सरल फ़ंक्शन को एक lambda फ़ंक्शन में बदलेंगे।
defecho_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 resultprint(result)संचालित द्वारा
जब हम ऊपर का कोड चलाते हैं, तो यह निम्न परिणाम देता है:
Python के साथ डेटा विश्लेषण की बुनियादी बातें सिर्फ चार घंटे में सीखें। यह ऑनलाइन पाठ्यक्रम Python इंटरफ़ेस का परिचय देगा और लोकप्रिय पैकेजों का अन्वेषण करेगा।
आप
defकीवर्ड, फ़ंक्शन हेडर, डॉकस्ट्रिंग्स और फ़ंक्शन बॉडी का उपयोग करके अपने खुद के Python फ़ंक्शन लिख सकते हैं। हालांकि, चलते-फिरते फ़ंक्शन लिखने का एक तेज़ तरीका भी है, जिन्हेंlambdaफ़ंक्शन कहा जाता है क्योंकि आपlambdaकीवर्ड का उपयोग करते हैं।कुछ फ़ंक्शन परिभाषाएँ इतनी सरल होती हैं कि उन्हें lambda फ़ंक्शन में बदला जा सकता है। ऐसा करने से आप कम पंक्तियों में कोड लिखते हैं, जो काफ़ी बढ़िया है और खासकर तब काम आता है जब आप बड़े प्रोग्राम लिख रहे हों और उन्हें मेंटेन कर रहे हों।
lambdaफ़ंक्शनयहाँ हम अपने फ़ंक्शन
raise_to_powerको एक lambda फ़ंक्शन के रूप में दोबारा लिखते हैं।lambdaकीवर्ड के बाद, हम आर्गुमेंट्स के नाम बताते हैं; फिर, हम एक कोलन लगाते हैं जिसके बाद वह एक्सप्रेशन आता है जो बताता है कि फ़ंक्शन क्या रिटर्न करेगा।जैसा बताया गया है,
lambdaफ़ंक्शन आपको जल्दी और सीधे तरीके से फ़ंक्शन लिखने देते हैं, इसलिए हम आपको उन्हें हर समय इस्तेमाल करने की सलाह नहीं देंगे, लेकिन कुछ स्थितियों में ये काफ़ी काम आते हैं, जैसे नीचे दिए गए उदाहरण में।map()औरlambdaफ़ंक्शनmapफ़ंक्शन दो आर्गुमेंट्स लेता है: एक फ़ंक्शन और एक सीक्वेंस जैसे कि लिस्ट, और उस सीक्वेंस के सभी एलिमेंट्स पर फ़ंक्शन अप्लाई करता है। हमmapकोlambdaफ़ंक्शन भी पास कर सकते हैं, बिना उन्हें कोई नाम दिए; ऐसे में हम उन्हें एनॉनिमस फ़ंक्शन्स कहते हैं।इस उदाहरण में, हम
map()को एकlambdaफ़ंक्शन के साथ उपयोग करते हैं, जो लिस्ट के सभी एलिमेंट्स का वर्ग करता है, और परिणाम कोsquare_allमें स्टोर करते हैं।square_allको प्रिंट करने पर पता चलता है कि यह एकmapऑब्जेक्ट है, तो यह देखने के लिए कि यह क्या रिटर्न करता है, हम इसे list में बदलते हैं और परिणाम प्रिंट करते हैं।एक
lambdaफ़ंक्शन लिखने का इंटरैक्टिव उदाहरणनीचे दिया गया फ़ंक्शन
echo_wordदो पैरामीटर लेता है: एक स्ट्रिंग मानword1और एक पूर्णांक मानecho। यह एक स्ट्रिंग रिटर्न करता है जोword1कीechoप्रतियों का संयोजन होता है।आप ऊपर दिए गए इस सरल फ़ंक्शन को एक lambda फ़ंक्शन में बदलेंगे।
निम्न उदाहरण में, आप यह करेंगे:
word1औरechoका उपयोग करते हुए एक lambda फ़ंक्शनecho_wordपरिभाषित करें। ऊपर दिए गएecho_word()के मूल फ़ंक्शन परिभाषा जैसा ही कार्य करें।'hey'और मान5के साथ, उसी क्रम में,echo_word()को कॉल करें। कॉल कोresultमें असाइन करें। अंत में,resultवेरिएबल प्रिंट करें।जब हम ऊपर का कोड चलाते हैं, तो यह निम्न परिणाम देता है:
खुद आज़माएँ।
Lambda फ़ंक्शन्स के बारे में और जानने के लिए, हमारे कोर्स Python Data Science Toolbox (Part 1) का यह वीडियो देखें।
यह सामग्री DataCamp के कोर्स Python Data Science Toolbox (Part 1) से ली गई है, लेखक Hugo Bowne-Anderson।
DataCamp का Python Functions ट्यूटोरियल देखें।