[Tutor] Using lambda
Alan Gauld
alan.gauld at btinternet.com
Mon Aug 24 10:11:33 CEST 2015
On 24/08/15 07:38, rakesh sharma wrote:
> I am beginner in pythonI see the use of lambda has been for really simple ones as in the numerous examples over the net.Why cant we use lambda in another one like g = lambda x: (lambda y: y + 1) + 1when I am able to do that in two lines
> h = lambda x: x + 1>>> h(12)13y = lambda x: h(x) + 1>>> y(1)3
Your email has arrived with no formatting so its hard to work
out your examples.
You can use lambda in multiple lines but it is limited
to a single expression.
>>> ml = lambda n: (
... 5*n + (
... n*n - (
... 25)))
>>> ml(7)
59
>>>
And you can use lambda within a lambda:
>>> adder = lambda x: lambda n: n+x
>>> adder(3)
<function <lambda> at 0x7fe3dca0ccf8>
>>> add3 = adder(3)
>>> add3(5)
8
>>>
But for longer functions you are better using def to define them.
In Python lambda is not the underlying mechanism for creating
functions it is a convenience feature. Python is not Lisp.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list