अजगर में, लैम्ब्डा एक कीवर्ड अनाम प्रक्रियाएं (कोई नाम के साथ काम करता है) परिभाषित किया जाता है और यही कारण है कि वे लैम्ब्डा कार्यों रूप में जाना जाता है।
मूल रूप से यह अनाम प्रक्रियाएं परिभाषित करने के लिए प्रयोग किया जाता है कि/तर्क (रों) और डेटा/अभिव्यक्ति के रिटर्न मूल्य नहीं ले जा सकते कर सकते हैं। आइए उदाहरण देखें।
>>> # Defining a lambda function that takes 2 parameters(as integer) and returns their sum
...
>>> lambda num1, num2: num1 + num2
<function <lambda> at 0x1004b5de8>
>>>
>>> # Let's store the returned value in variable & call it(1st way to call)
...
>>> addition = lambda num1, num2: num1 + num2
>>> addition(62, 5)
67
>>> addition(1700, 29)
1729
>>>
>>> # Let's call it in other way(2nd way to call, one line call)
...
>>> (lambda num1, num2: num1 + num2)(120, 1)
121
>>> (lambda num1, num2: num1 + num2)(-68, 2)
-66
>>> (lambda num1, num2: num1 + num2)(-68, 2**3)
-60
>>>
अब मुझे अपने सवाल का एक जवाब दे। पहला उत्तर भी बढ़िया है। यह एक और उदाहरण के साथ व्याख्या करने का मेरा तरीका है।
मान लीजिए हम एक (पूर्णांकों और संख्यात्मक सामग्री साथ तार) के रूप में
nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
आइटम की सूची, है और मैं अनुसार क्रमबद्ध() समारोह का उपयोग कर इसे सुलझाने के लिए चाहते हैं, की सुविधा देता है जो देखते हैं हो जाता।
>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
>>> sorted(nums)
[1, 3, 4, '-1', '-10', '2', '5', '8']
>>>
यह मुझे नहीं दिया मैं क्या उम्मीद के रूप में मैं नीचे की तरह चाहता था,
['-10', '-1', 1, '2', 3, 4, '5', '8']
इसका मतलब है कि हम कुछ रणनीति (ताकि हमारे स्ट्रिंग आइटम का इलाज कर सकता है हल कर की जरूरत है इसे प्राप्त करने के लिए एक स्याही के रूप में)। यही कारण है कि कुंजी कीवर्ड तर्क का उपयोग किया जाता है। कृपया नीचे देखें।
>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
>>> sorted(nums, key=int)
['-10', '-1', 1, '2', 3, 4, '5', '8']
>>>
कुंजी
>>> names = ["Rishikesh", "aman", "Ajay", "Hemkesh", "sandeep", "Darshan", "Virendra", "Shwetabh"]
>>> names2 = sorted(names)
>>> names2
['Ajay', 'Darshan', 'Hemkesh', 'Rishikesh', 'Shwetabh', 'Virendra', 'aman', 'sandeep']
>>> # But I don't want this o/p(here our intention is to treat 'a' same as 'A')
...
>>> names3 = sorted(names, key=lambda name:name.lower())
>>> names3
['Ajay', 'aman', 'Darshan', 'Hemkesh', 'Rishikesh', 'sandeep', 'Shwetabh', 'Virendra']
>>>
के एक मूल्य (प्रतिदेय) और कुंजी के मूल्य के रूप में इसे प्रदान आप अपनी खुद की समारोह के रूप में परिभाषित कर सकते हैं देता है उपयोग लैम्ब्डा समारोह।
प्रिय programers, मैं तुम्हारे लिए नीचे दिए गए कोड में लिखा है, बस करने की कोशिश को समझने यह और टिप्पणी अपने स्पष्टीकरण।मुझे आपकी व्याख्या देखने में खुशी होगी (यह आसान है)।
>>> def validator(item):
... try:
... return int(item)
... except:
... return 0
...
>>> sorted(['gurmit', "0", 5, 2, 1, "front", -2, "great"], key=validator)
[-2, 'gurmit', '0', 'front', 'great', 1, 2, 5]
>>>
मैं आशा यह उपयोगी होगा।
इस मामले में 'key' एक कीवर्ड तर्क है और 'lambda' के साथ कुछ लेना देना नहीं है। – l4mpi
इसे देखें: http://stackoverflow.com/questions/8966538/syntax-behind-sortedkey-lambda – sachinjain024