Python में lambda-फ़ंक्शन क्या है?
Lambda-फ़ंक्शन Python में फ़ंक्शन को परिभाषित करने का एक संक्षिप्त और सरल तरीका है। इसे लैम्ब्डा फ़ंक्शन या अनाम फ़ंक्शन (anonymous function) भी कहा जाता है, क्योंकि इसे बिना नाम के बनाया जाता है और आमतौर पर उसी स्थान पर उपयोग किया जाता है जहाँ def कीवर्ड से पूर्ण फ़ंक्शन बनाना ज़रूरी नहीं होता।
Lambda-फ़ंक्शन सरल और उपयोग में आसान होते हैं। इन्हें अक्सर उच्च-क्रम फ़ंक्शन (higher-order functions) जैसे map(), filter(), sorted() के साथ उपयोग किया जाता है। इसके अलावा, lambda-फ़ंक्शन लोकप्रिय लाइब्रेरीज़ जैसे pandas, NumPy, Flask, Tkinter और Python इकोसिस्टम के अन्य टूल्स में व्यापक रूप से उपयोग होते हैं।
Lambda-फ़ंक्शन का सिंटैक्स (Syntax)
Lambda-एक्सप्रेशन की संरचना
Python में lambda-फ़ंक्शन का सिंटैक्स इस प्रकार है:
lambda arguments: expression
जहाँ:
- arguments — फ़ंक्शन के आर्गुमेंट्स की सूची, सामान्य फ़ंक्शन की तरह
- expression — एक एक्सप्रेशन, जिसका परिणाम फ़ंक्शन के रिटर्न वैल्यू के रूप में दिया जाता है
Lambda-फ़ंक्शन की विशेषताएँ
Python में lambda-फ़ंक्शन की कुछ महत्वपूर्ण विशेषताएँ हैं:
- यह हमेशा एक्सप्रेशन का परिणाम अपने आप रिटर्न करता है
- इसमें return कीवर्ड का उपयोग नहीं होता
- एक्सप्रेशन का परिणाम ही रिटर्न वैल्यू होता है
- फ़ंक्शन के बॉडी में केवल एक एक्सप्रेशन हो सकता है
Lambda-एक्सप्रेशन के व्यावहारिक उदाहरण
सरल गणितीय ऑपरेशन
# संख्या का वर्ग निकालना
square = lambda x: x ** 2
print(square(5)) # 25
# दो संख्याओं का जोड़
add = lambda a, b: a + b
print(add(3, 7)) # 10
# संख्या की समता जाँचना
is_even = lambda x: x % 2 == 0
print(is_even(4)) # True
सशर्त एक्सप्रेशन के साथ Lambda
# अधिकतम मान निर्धारित करना
max_value = lambda x, y: x if x > y else y
print(max_value(10, 15)) # 15
# संख्याओं का वर्गीकरण
categorize = lambda x: "सकारात्मक" if x > 0 else "नकारात्मक" if x < 0 else "शून्य"
Lambda और सामान्य फ़ंक्शन की तुलना
मुख्य अंतर
| विशेषता | सामान्य फ़ंक्शन (def) | Lambda-फ़ंक्शन |
|---|---|---|
| सिंटैक्स | def func(x): return x * 2 | lambda x: x * 2 |
| एक्सप्रेशन की संख्या | एक से अधिक | केवल एक |
| नामकरण | नाम होता है | आमतौर पर अनाम |
| उपयोग का क्षेत्र | पुन: उपयोग | एक बार के ऑपरेशन |
| दस्तावेज़ीकरण | docstring सपोर्ट करता है | सपोर्ट नहीं करता |
| टाइप एनोटेशन | सपोर्ट करता है | सीमित सपोर्ट |
Lambda का उपयोग कब करें
Lambda-फ़ंक्शन निम्नलिखित स्थितियों में सबसे प्रभावी होते हैं:
- सरल, एक-पंक्ति वाले ऑपरेशन
- अन्य फ़ंक्शन के आर्गुमेंट के रूप में उपयोग
- अस्थायी गणनाएँ जिन्हें बार-बार कॉल करने की आवश्यकता नहीं
- उच्च-क्रम फ़ंक्शन के साथ काम करना
उच्च-क्रम फ़ंक्शन में Lambda का उपयोग
map() फ़ंक्शन
map() फ़ंक्शन दिए गए फ़ंक्शन को इटरेटेबल ऑब्जेक्ट के प्रत्येक एलिमेंट पर लागू करता है:
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))
print(squares) # [1, 4, 9, 16, 25]
# स्ट्रिंग को अपरकेस में बदलना
words = ["hello", "world", "python"]
uppercase = list(map(lambda s: s.upper(), words))
print(uppercase) # ['HELLO', 'WORLD', 'PYTHON']
filter() फ़ंक्शन
filter() उन एलिमेंट्स से एक इटरेटर बनाता है जिनके लिए