Lambda is just an expression, the function body is much simpler than def, many times defining Def, and then writing a function is too cumbersome to define an anonymous function with lambda.
The body of a lambda is an expression, not a block of code. Only a finite amount of logic can be encapsulated in a lambda expression.
A lambda expression acts as a function sketch. Allows the definition of a function to be embedded within the code.
1 List (filter (lambdaifelse False, Range (100)))
As shown above, a lambda expression is used to define an anonymous function that filters multiples of 3 within 100 and generates a list.
def make_repeat (n): return Lambda s:s * n
Of course, Lambda can also be nested within a function, as above, a lambda expression nested inside a function.
Double = Make_repeat (2) Double<function make_repeat.<locals>.<Lambda> at 0x0000000003a01d90>
Then, you can use a variable to receive it, display a double variable, a double variable is a function, and need a parameter, see lambda expression, need an S-parameter.
Print (Double (8))16
Finally, the double variable is called and passed to the parameter 8, resulting in a return value of 16. Because the previous value of N passed in is 2, 2 * 8 gets 16.
Built-in BIF Introduction:
Filter (): Simply understood as a filter, requires two parameters, function, and a sequence (strings, lists, tuples are sequences), the filter will sequentially pass the value of the sequence into the function,
Returns true if it is regenerated by a list.
1 List (filter (lambdaifelse False, range))2 [0, 3, 6, 9, 12, 15, 18, 21, 2 4, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
Zip (): the literal meaning of understanding, that is, zip packaging, you can package multiple sequences, it will split the sequence, and then the first sequence and the second sequence of elements to form a tuple, 2 groups of groups to synthesize the list.
Note, however, that this is combined in the shortest sequence, meaning that if a sequence is longer and a shorter one, the combination will only go to the last element of the broken sequence, and the excess will be discarded.
1>>> str1 ="ABCDE"2>>> str2 ="ABCDEFG"3>>>list (Zip (str1, str2))4[('a','a'), ('b','b'), ('C','C'), ('D','D'), ('e','e')]
Map (): Mapping, usage and filter () are similar, but also the sequence is put into a function to operate, but regardless of the result of the operation, map () will be faithful feedback, which is the main difference between map () and filter (). Note that the function in filter () and map () must have a return value.
1 >>> list (map (lambda x: True if x 3 = = 0 else False, Range (100 2 [True, False, False, True, False, False, True, False, False, True, Fals E, False, True, False, False, True, False, False, True, False, False, True, False, False, True, False, False, true, False, False, True, False, False, True, False, False, True, False, False, True, False, False, True, False, False, F Alse, True, False, False, True, False, False, True, False, False, True, False, False, True, False, Fal SE, True, False, False, True, False, False, True, False, False, True, False, False, True, False, False , True, False, False, True, False, False, True, False, False, True, False, False, True, False, False, true]
Python lambda expression