Introduction to Python Lambda Functions
Mostly सभी popular programming languages में anonymous functions का concept available है। कई programming languages में इन्हे lambda expressions भी कहा जाता है।
किसी programming languages में यह आवश्यक नहीं है की lambda function और anonymous function एक ही चीज़ हो। एक anonymous function lambda category में तब ही आता है जब वह function object return करता है और उसे argument के रूप में pass किया जा सकता है।
Python में lambda function और anonymous function एक ही चीज़ है। इसलिए आपको इनके बीच confuse नहीं होना चाहिए।
Defined Anonymously
Lambda functions को बिना किसी नाम के anonymously define किया जाता है। इनको आप एक object को assign करते है और उसी object नाम के द्वारा इन्हे use किया जाता है। यह कई keywords का use करते हुए एक पूर्ण function लिखने की आवश्यकता को खत्म कर देता है।
Lambda Keyword
Python में normal functions को def keyword द्वारा और lambda functions को lambda keyword द्वारा define किया जाता है।
lambda <arguments> : expression
|
Can Have Any Number of Arguments
Lambda keyword के बाद arguments को define किया जाता है। Normal functions की ही तरह python में lambda functions को भी आप अपनी इच्छा अनुसार कितने भी arguments pass कर सकते है।
lambda <x1, x2, x3, x4……xN> : <expression>
|
Can Only Have a Single Expression
Arguments के बाद colon (:) लगाकर expression define किया जाता है। इस expression को आप function की body की तरह समझ सकते है।
lambda <x1,x2,x3,….xN> : <single – Expression>
|
Lambda functions में केवल एक ही expression define किया जा सकता है। Lambda functions का syntax multiple expressions use किया जाना allow नहीं करता है। यही कारण है की lambda functions को one line functions भी कहा जाता है।
No Return Statement
Normal functions की तरह lambda functions में कोई return statement नहीं होता है। Define किये गए single expression को evaluate किया जाता है और उसके result को automatically return कर दिया जाता है।
When Function Object is Required
जैसा की मैने आपको पहले ऊपर बताया lambda functions को define करके एक object को assign किया जाता है। इसके बाद उस object के द्वारा ही आप lambda function को use करते है। यह एक function object होता है।
obj = lambda <x1, x2, x3,…..xN> : <expression>
|
इस प्रकार आप lambda functions को जँहा भी किसी function object की आवश्यकता हो वँही पर use कर सकते है।
Single Use Function
Lambda functions single use functions होते है। इसलिए आप इन्हें वँहा पर ही create करते है जँहा पर आपको इनकी आवश्यकता हो। इन्हे throwaway functions भी कहा जाता है।
जब भी आपको एक single expression logic की आवश्यकता हो तो आप एक सम्पूर्ण function create करने की बजाय lambda function create कर सकते है।
उदाहरण के लिए आप एक object को value पहले calculate करके assign करना चाहते है। ऐसे में lambda function द्वारा आप वह value evaluate कर सकते है और इसके बाद उसे object को assign किया जा सकता है।
Can Be Passed as an Argument to Another Function
क्योंकि एक lambda function object होता है। इसलिए आप एक lambda function को दूसरे function में argument के रूप में भी pass कर सकते है। ऐसी situation में expression द्वारा return की गयी और object द्वारा hold की गयी value ही argument के रूप में काम करेगी।
LamObj = lambda x1, x2 : x1 + x2
def myFunction(LamObj):
print(“Sum is”+LamObj) |
Python में lambda functions का प्रयोग अधिकतर filter(), map() और reduce() functions में argument के रूप में किया जाता है।
filter() Function
Python में filter एक ऐसा function है जो logic के आधार पर किसी list में से data को filter करके extract करने के लिए प्रयोग किया जाता है। इस function में आप एक function और एक list को argument के रूप में pass करते है।
List के सभी items के साथ logic perform किया जाता है जो item उस logic के अनुरूप होता है उसे store कर लिया जाता है। इस प्रकार वे सभी items जो उस logic को fulfil करते है उन्हें return कर दिया जाता है।
उदाहरण के लिए आप उन सब list items को list करना चाहते है जो 3 के multiple है तो ऐसे में lambda functions द्वारा ऐसा किया जा सकता है।
myList = (2, 3, 4, 6, 8, 9, 10 ,12)
result_List = list(filter(lambda x : x%3==0, myList))
//return 3 6 9 12
|
यँहा पर जैसा की आप महसूस कर सकते है normal function की बजाय lambda function एक शानदार fit होगा। क्योंकि आपको अलग से एक function create करने की आवश्यकता नहीं होगी। जँहा पर आपको आवश्यकता है आप वँही पर एक single line में उसे define कर लेते है।
इसी प्रकार आप map() function में argument के रूप में lambda expression को use कर सकते है और logic के आधार पर नयी list create कर सकते है।
1 Comments
Thanks 😊
ReplyDelete