First, the lambda function
1. Basic lambda function:
The lambda function is also called an anonymous function, that is, the function does not have a specific name, and the method created with Def is a name. As follows:
"" "named Foo function" "Def foo (): Return ' Beginman ' #Python中单行参数可以和标题写在一行
The Lambda keyword creates an anonymous function that is the same as the function "" "Lambda: ' Beginman '
The above simply creates a function object with lambda, does not save it and does not call it, and is recycled at all times. Here we save and invoke:
Bar = lambda: ' Beginman ' Print bar () #beginman
The Python lambda syntax is easy to understand from the above examples:
Lambda [arg1[,arg2,arg3....argn]]:expression
In a lambda statement, the colon is preceded by a parameter, which can have multiple, separated by commas, and a return value to the right of the colon. A lambda statement is actually built as a function object.
Print lambda: ' Beginman ' #<function <lambda> at 0x00b00a30>
2, no parameters
If there are no parameters, the lambda Colon does not precede it, as in the above example.
3, have parameters
def add (x, y): return x+yadd2 = lambda x,y:x+yprint add2 ( #3def) sum (x,y=10): return x+ysum2 = lambda x,y=10:x+yprint SUM2 (1) #11print sum2 (1,100) #101
Second, Lambda and def
In the above example, the lambda function simply creates a simple function object, which is a single-line version of a function, but the statement is called to bypass the stack allocation of the function for performance reasons. What else does Python lambda have to do with Def?
1. Python lambda creates a function object, but does not assign the function object to an identifier, and Def assigns the function object to a variable.
Such as:
>>> def foo (): Return ' foo () ' >>> foo<function foo at 0x011a34f0>
2, Python Lambda It's just an expression, and DEF is a statement. A lambda expression runs like a function when it is called to create a Frame object.
Iii. use of lambda functions
Personal opinion has the following:
1. For single-line functions, using lambda can eliminate the process of defining a function, making the code more streamlined.
2. In the case of functions that are not called multiple times, lambda expressions are used to improve performance
Note: if for. In.. If you can do it, it's best not to choose lambda.
Python function (1) lambda