lambda with floats

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Fri Apr 9 06:31:56 CEST 2010


On Thu, 08 Apr 2010 21:32:10 -0400, monkeys paw wrote:

> I was going from example and looking for something useful from the
> lambda feature. I come from C -> Perl -> Python (recent). I don't find
> lambda very useful yet.

Perhaps you feel that lambda is a special kind of object. It isn't. It's 
just a short-cut for creating an anonymous function object.

f = lambda x: x+1 

is almost exactly the same as:

def function(x):
    return x+1

f = function
del function


The only advantages of lambda are:

(1) you can write a simple function as a one-liner; and
(2) it's an expression, so you can embed it in another expression:

list_of_functions = [math.sin, lambda x: 2*x-1, lambda x, y=1: x**y]
for func in list_of_functions:
    plot(func)


The disadvantage of lambda is that you can only include a single 
expression as the body of the function.

You will generally find lambdas used as callback functions, and almost 
nowhere else.


-- 
Steven



More information about the Python-list mailing list