लैम्ब्डा वास्तव में बहुत शक्तिशाली निर्माण हैं जो कार्यात्मक प्रोग्रामिंग में विचारों से उपजी हैं, और यह कुछ ऐसा है जो किसी भी तरह से आसानी से संशोधित नहीं किया जाएगा, इसे पायथन के निकट भविष्य में पुनर्परिभाषित या हटा दिया जाएगा। वे आपको कोड लिखने में मदद करते हैं जो अधिक शक्तिशाली है क्योंकि यह आपको कार्यों को मापदंडों के रूप में पारित करने की अनुमति देता है, इस प्रकार प्रथम श्रेणी के नागरिकों के रूप में कार्यों का विचार है।
लैंबडस भ्रमित होने की प्रवृत्ति रखते हैं, लेकिन एक बार एक ठोस समझ प्राप्त करने के बाद, आप इस तरह से स्वच्छ सुरुचिपूर्ण कोड लिख सकते हैं:
squared = map(lambda x: x*x, [1, 2, 3, 4, 5])
कोड की उपरोक्त पंक्ति सूची में संख्याओं के वर्गों की एक सूची लौटाती है। बेशक, आप भी इसे कर सकते हैं जैसे:
def square(x):
return x*x
squared = map(square, [1, 2, 3, 4, 5])
यह स्पष्ट है कि पूर्व कोड कम है, और यह विशेष रूप से सच है यदि आप केवल एक स्थान पर मानचित्र फ़ंक्शन (या किसी समान फ़ंक्शन जो पैरामीटर के रूप में एक फ़ंक्शन लेता है) का उपयोग करने का इरादा रखते हैं। यह कोड को अधिक सहज और सुरुचिपूर्ण भी बनाता है।
इसके अलावा, जैसा कि @David Zaslavsky ने अपने उत्तर में उल्लेख किया है, सूची की समझ हमेशा विशेष रूप से जाने का तरीका नहीं है यदि आपकी सूची में कुछ अस्पष्ट गणितीय तरीके से मूल्यों को प्राप्त करना है।
अधिक व्यावहारिक दृष्टिकोण से, मेरे लिए लैम्बदास का सबसे बड़ा लाभ हाल ही में जीयूआई और इवेंट-संचालित प्रोग्रामिंग में हुआ है। यदि आप टिंकर में कॉलबैक पर एक नज़र डालते हैं, तो वे सभी तर्क के रूप में लेते हैं, यह घटना है जिसने उन्हें ट्रिगर किया। उदाहरण के लिए
def define_bindings(widget):
widget.bind("<Button-1>", do-something-cool)
def do-something-cool(event):
#Your code to execute on the event trigger
अब अगर आपके पास पास करने के लिए कुछ तर्क हैं तो क्या होगा? माउस-क्लिक के निर्देशांक को संग्रहीत करने के लिए 2 तर्क पारित करने के रूप में सरल कुछ। आप इसे आसानी से इस तरह से कर सकते हैं:
def main():
# define widgets and other imp stuff
x, y = None, None
widget.bind("<Button-1>", lambda event: do-something-cool(x, y))
def do-something-cool(event, x, y):
x = event.x
y = event.y
#Do other cool stuff
अब आप तर्क दे सकते हैं कि यह वैश्विक चर का उपयोग करके किया जा सकता है, लेकिन क्या आप वास्तव में स्मृति प्रबंधन और रिसाव के बारे में चिंता करने के लिए अपने सिर को पीटना चाहते हैं, खासकर यदि वैश्विक चर का उपयोग केवल एक विशेष स्थान पर किया जाएगा? यह सिर्फ घटिया प्रोग्रामिंग शैली होगी।
संक्षेप में, लंबोदर कमाल के हैं और उन्हें कभी कम नहीं आंका जाना चाहिए। पाइथन लैम्ब्डा हालांकि LISP लैम्ब्डा के समान नहीं हैं (जो अधिक शक्तिशाली हैं), लेकिन आप वास्तव में उनके साथ बहुत सारे जादुई सामान कर सकते हैं।