"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में लैम्ब्डा फ़ंक्शंस का उपयोग कैसे करें

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

2024-11-15 को प्रकाशित
ब्राउज़ करें:627

How to Use Lambda Functions in Python

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

जबकि पारंपरिक फ़ंक्शंस को def कीवर्ड का उपयोग करके परिभाषित किया जाता है, लैम्ब्डा फ़ंक्शंस को लैम्ब्डा कीवर्ड का उपयोग करके परिभाषित किया जाता है और सीधे कोड की पंक्तियों में एकीकृत किया जाता है। विशेष रूप से, इन्हें अक्सर अंतर्निहित कार्यों के लिए तर्क के रूप में उपयोग किया जाता है। वे अस्थायी फ़ंक्शन परिभाषाओं की आवश्यकता को समाप्त करके डेवलपर्स को स्वच्छ और पठनीय कोड लिखने में सक्षम बनाते हैं।

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

आवश्यक शर्तें

लैम्ब्डा फ़ंक्शन संस्करण 2.0 से पायथन का हिस्सा रहा है, इसलिए आपको इसकी आवश्यकता होगी:

  • न्यूनतम पायथन संस्करण: 2.0.
  • अनुशंसित पायथन संस्करण: 3.10 या बाद का संस्करण।

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

pip install pandas

पायथन के लिए लैम्ब्डा फ़ंक्शंस का सिंटेक्स और मूल बातें

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

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

lambda arguments: expression

आइए कल्पना करें कि हम एक लैम्ब्डा फ़ंक्शन बनाना चाहते हैं जो दो संख्याओं को जोड़ता है:

add = lambda x, y: x   y

निम्नलिखित चलाएँ:

result = add(3, 5)
print(result)

इस में यह परिणाम:

8

हमने एक अनाम फ़ंक्शन बनाया है जो दो तर्क लेता है, x और y। पारंपरिक फ़ंक्शंस के विपरीत, लैम्ब्डा फ़ंक्शंस का कोई नाम नहीं होता: इसीलिए हम कहते हैं कि वे "गुमनाम" हैं।

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

अब आइए लैम्ब्डा फ़ंक्शंस के लिए कुछ सामान्य उपयोग के मामले देखें।

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

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

आइए कुछ व्यावहारिक उदाहरण देखें।

मैप() फ़ंक्शन के साथ लैम्ब्डा फ़ंक्शंस का उपयोग करना

मैप() एक अंतर्निहित फ़ंक्शन है जो किसी दिए गए फ़ंक्शन को पुनरावृत्त के प्रत्येक आइटम पर लागू करता है और परिणामों के साथ एक मैप ऑब्जेक्ट लौटाता है।

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

# Define the list of numbers
numbers = [1, 2, 3, 4]

# Calculate square values and print results
squared = list(map(lambda x: x ** 2, numbers))
print(squared)

इस में यह परिणाम:

[1, 4, 9, 16]

अब हमारे पास प्रारंभिक संख्याओं के वर्गमूल वाली एक सूची है।

जैसा कि हम देख सकते हैं, यह तुरंत फ़ंक्शंस का उपयोग करने की प्रक्रियाओं को बहुत सरल बनाता है जिन्हें बाद में पुन: उपयोग करने की आवश्यकता नहीं होती है।

फ़िल्टर() फ़ंक्शन के साथ लैम्ब्डा फ़ंक्शंस का उपयोग करना

अब, मान लीजिए कि हमारे पास संख्याओं की एक सूची है और हम सम संख्याओं को फ़िल्टर करना चाहते हैं।

हम लैम्ब्डा फ़ंक्शन का उपयोग इस प्रकार कर सकते हैं:

# Create a list of numbers
numbers = [1, 2, 3, 4]

# Filter for even numbers and print results
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)

इस में यह परिणाम:

[2,4]

क्रमबद्ध() फ़ंक्शन के साथ लैम्ब्डा फ़ंक्शंस का उपयोग करना

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

उदाहरण के लिए, मान लें कि हमारे पास दो आयामों में बिंदुओं की एक सूची है: (x,y)। हम एक ऐसी सूची बनाना चाहते हैं जो y मानों को क्रमिक रूप से क्रमबद्ध करे।

हम इसे इस प्रकार कर सकते हैं:

# Creates a list of points
points = [(1, 2), (3, 1), (5, -1)]

# Sort the points and print
points_sorted = sorted(points, key=lambda point: point[1])
print(points_sorted)

और हमें मिलता है:

[(5, -1), (3, 1), (1, 2)]

सूची समझ में लैम्ब्डा फ़ंक्शंस का उपयोग करना

उनकी संक्षिप्तता को देखते हुए, लैम्ब्डा फ़ंक्शंस को ऑन-द-फ़्लाई गणनाओं के लिए सूची समझ में एम्बेड किया जा सकता है।

मान लीजिए हमारे पास संख्याओं की एक सूची है। हम चाहते हैं:

  • पूरी सूची को दोहराएँ
  • प्रारंभिक मानों की दोगुनी गणना करें और प्रिंट करें।

यहां बताया गया है कि हम ऐसा कैसे कर सकते हैं:

# Create a list of numbers
numbers = [1, 2, 3, 4]

# Calculate and print the double of each one
squared = [(lambda x: x ** 2)(x) for x in numbers]
print(squared)

और हम प्राप्त करते हैं:

[1, 4, 9, 16]

लैम्ब्डा फ़ंक्शंस का उपयोग करने के लाभ

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

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

सीमाएँ और कमियाँ

आइए पायथन में लैम्ब्डा फ़ंक्शन की कुछ सीमाओं और कमियों पर संक्षेप में चर्चा करें:

  • जटिल अभिव्यक्तियों में पठनीयता चुनौतियां: जबकि लैम्ब्डा फ़ंक्शन संक्षिप्त हैं, जटिल अभिव्यक्तियों के लिए उपयोग किए जाने पर उन्हें पढ़ना और समझना मुश्किल हो सकता है। इससे ऐसा कोड बन सकता है जिसे बनाए रखना और डीबग करना कठिन हो जाता है।
  • त्रुटि प्रबंधन और डिबगिंग में सीमाएं: चूंकि लैम्ब्डा फ़ंक्शन में केवल एक ही अभिव्यक्ति हो सकती है, वे त्रुटि प्रबंधन के लिए प्रयास-छोड़कर ब्लॉक जैसे कथन शामिल नहीं कर सकते हैं। यह सीमा उन्हें उन जटिल परिचालनों के लिए अनुपयुक्त बनाती है जिनके लिए इन सुविधाओं की आवश्यकता होती है।
  • प्रतिबंधित कार्यक्षमता: चूंकि लैम्ब्डा फ़ंक्शंस में केवल एक ही अभिव्यक्ति हो सकती है, वे मानक फ़ंक्शंस की तुलना में कम बहुमुखी हैं। यह उप-डिज़ाइन प्रतिबंध उनके उपयोग को सरल संचालन और परिवर्तनों तक सीमित करता है।

लैम्ब्डा फ़ंक्शंस का उपयोग करने के लिए सर्वोत्तम अभ्यास

अब जब हमने कुछ पेशेवरों और विपक्षों पर विचार कर लिया है, तो आइए लैम्ब्डा फ़ंक्शंस को प्रभावी ढंग से उपयोग करने के लिए कुछ सर्वोत्तम प्रथाओं को परिभाषित करें:

  • उन्हें सरल रखें: पठनीयता और सरलता बनाए रखने के लिए, लैम्ब्डा फ़ंक्शंस को छोटा और सीधे संचालन तक सीमित रखा जाना चाहिए। जटिल तर्क वाले कार्यों को मानक कार्यों में पुनः क्रियान्वित किया जाना चाहिए।
  • अत्यधिक उपयोग से बचें: जबकि लैम्ब्डा फ़ंक्शन कई स्थितियों के लिए सुविधाजनक हैं, उनके अत्यधिक उपयोग से कोड बन सकता है जिसे पढ़ना और बनाए रखना मुश्किल हो सकता है। उनका विवेकपूर्ण तरीके से उपयोग करें और जब स्पष्टता मौलिक हो तो मानक कार्यों का चयन करें।
  • लैम्ब्डा फ़ंक्शंस को अन्य पायथन सुविधाओं के साथ संयोजित करें: जैसा कि हमने देखा है, लैम्ब्डा फ़ंक्शंस को अन्य पायथन सुविधाओं, जैसे सूची समझ और उच्च-क्रम फ़ंक्शंस के साथ प्रभावी ढंग से जोड़ा जा सकता है। उचित रूप से उपयोग किए जाने पर इसका परिणाम अधिक अभिव्यंजक और संक्षिप्त कोड हो सकता है।

लैम्ब्डा फ़ंक्शंस के साथ उन्नत तकनीकें

कुछ मामलों में, अधिक उन्नत लैम्ब्डा फ़ंक्शन तकनीकें मददगार हो सकती हैं।

आइए कुछ उदाहरण देखें।

नेस्टेड लैम्ब्डा फ़ंक्शंस

लैम्ब्डा फ़ंक्शंस को जटिल संचालन के लिए नेस्ट किया जा सकता है।

यह तकनीक उन परिदृश्यों में उपयोगी है जहां आपको एक क्रम में कई छोटे परिवर्तन करने की आवश्यकता होती है।

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

# Create a nested lambda function
nested_lambda = lambda x: (lambda y: y ** 2)(x)   1

# Print the result for the value 3
print(nested_lambda(3))

आपको मिला:

10

उन्नत कार्यक्षमता के लिए पायथन पुस्तकालयों के साथ एकीकरण

कई पायथन लाइब्रेरी जटिल डेटा प्रोसेसिंग कार्यों को सरल बनाने के लिए लैम्ब्डा फ़ंक्शन का लाभ उठाती हैं।

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

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

# Create the columns' data
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}

# Create data frame
df = pd.DataFrame(data)

# Create row C as A B and print the dataframe
df['C'] = df.apply(lambda row: row['A']   row['B'], axis=1)
print(df)

और हमें मिलता है:

   A  B  C
0  1  4  5
1  2  5  7
2  3  6  9

पायथन में लैम्ब्डा फ़ंक्शंस के हमारे व्हिसल-स्टॉप दौरे के लिए बस इतना ही!

ऊपर लपेटकर

इस लेख में, हमने देखा है कि पायथन में लैम्ब्डा फ़ंक्शंस का उपयोग कैसे करें, उनके पेशेवरों और विपक्षों, कुछ सर्वोत्तम प्रथाओं का पता लगाया, और कुछ उन्नत उपयोग के मामलों को छुआ।

हैप्पी कोडिंग!

पी.एस. यदि आप प्रेस से हटते ही पाइथॉन पोस्ट पढ़ना चाहते हैं, तो हमारे पाइथॉन विजार्ड्री न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/appsignal/how-to-use-lambda-functions-in-python-3llj?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3