[Tutor] string to list

Alan Plum alan.plum at uni-koeln.de
Thu Feb 11 09:41:40 CET 2010


On Mi, 2010-02-10 at 16:57 +0000, Owain Clarke wrote: 
> I would love a really clear explanation of lambda!

Generally, lambdas are anonymous functions.

In Python specifically, however, they are limited to simple expressions
(i.e. only what you can put on the right-hand side of an assignment).

myfunction = lambda <args>: <expression>

is roughly equivalent to:

def myfunction(<args>): return <expression>

(note that the function definition becomes invalid if you leave out the
function name, lambdas OTOH don't need to be assigned to a named
variable and don't contain a name in their definition)

The point here is that the expression is evaluated and the result
returned by the lambda, much like the expression following a return
statement in a normal function: the equivalent function's body consists
of a single return statement with the lambda's body as return value.

There's not much to understanding how lambdas work. They just make
one-offs easier when all you really want to do is pass a value where a
callable is required or if you want to do something like accessing an
index or sub-index or member variable of each object in a list (which is
what the sorting function's key argument is usually used for).

In the case of your code, your lambda was:

lambda x: x[0]

and

lambda x: x[1]

If applied to a tuple or list, this works like this:

>>> mytuple = ('a','b')
>>> l1 = lambda x: x[0]
>>> l2 = lambda x: x[1]
>>> l1(mytuple)
'a'
>>> l2(mytuple)
'b'


Hope that helps.

Alan Plum



More information about the Tutor mailing list