पायथन में लैम्ब्डा फ़ंक्शन तुरंत छोटे, गुमनाम फ़ंक्शन बनाने का एक शक्तिशाली तरीका है। इन फ़ंक्शंस का उपयोग आम तौर पर छोटे, सरल ऑपरेशनों के लिए किया जाता है जहां पूर्ण फ़ंक्शन परिभाषा का ओवरहेड अनावश्यक होगा।
जबकि पारंपरिक फ़ंक्शंस को def कीवर्ड का उपयोग करके परिभाषित किया जाता है, लैम्ब्डा फ़ंक्शंस को लैम्ब्डा कीवर्ड का उपयोग करके परिभाषित किया जाता है और सीधे कोड की पंक्तियों में एकीकृत किया जाता है। विशेष रूप से, इन्हें अक्सर अंतर्निहित कार्यों के लिए तर्क के रूप में उपयोग किया जाता है। वे अस्थायी फ़ंक्शन परिभाषाओं की आवश्यकता को समाप्त करके डेवलपर्स को स्वच्छ और पठनीय कोड लिखने में सक्षम बनाते हैं।
इस लेख में, हम कवर करेंगे कि लैम्ब्डा फ़ंक्शंस क्या करते हैं और उनका सिंटैक्स क्या है। हम उनका उपयोग करने के लिए कुछ उदाहरण और सर्वोत्तम अभ्यास भी प्रदान करेंगे, और उनके पेशेवरों और विपक्षों पर चर्चा करेंगे।
लैम्ब्डा फ़ंक्शन संस्करण 2.0 से पायथन का हिस्सा रहा है, इसलिए आपको इसकी आवश्यकता होगी:
इस ट्यूटोरियल में, हम देखेंगे कि पांडा लाइब्रेरी के साथ लैम्ब्डा फ़ंक्शन का उपयोग कैसे करें: एक तेज़, शक्तिशाली, लचीला और उपयोग में आसान ओपन-सोर्स डेटा विश्लेषण और हेरफेर लाइब्रेरी। यदि आपने इसे स्थापित नहीं किया है, तो निम्नलिखित चलाएँ:
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
पायथन में लैम्ब्डा फ़ंक्शंस के हमारे व्हिसल-स्टॉप दौरे के लिए बस इतना ही!
इस लेख में, हमने देखा है कि पायथन में लैम्ब्डा फ़ंक्शंस का उपयोग कैसे करें, उनके पेशेवरों और विपक्षों, कुछ सर्वोत्तम प्रथाओं का पता लगाया, और कुछ उन्नत उपयोग के मामलों को छुआ।
हैप्पी कोडिंग!
पी.एस. यदि आप प्रेस से हटते ही पाइथॉन पोस्ट पढ़ना चाहते हैं, तो हमारे पाइथॉन विजार्ड्री न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3