We can create anonymous functions, known as lambda functions. Lambda functions are different from normal Python functions, they origin from Lambda Calculus. It allows you to write very short functions.
Lambda function example
This code shows the use of a lambda function:
#!/usr/bin/env python
f = lambda x : 2 * x
print f(3)
|
A return statements is never used in a lambda function, it always returns
something.
A lambda functions may contain if statements:
#!/usr/bin/env python
f = lambda x: x > 10
print(f(2))
print(f(12))
|
map function
The definition of map is map(function,iterable). It applies a function to every item in the iteratable. We can use map() to on a lambda function with a list:
#!/usr/bin/env python
list = [1,2,3,4,5]
squaredList = map(lambda x: x*x, list)
print(squaredList)
Anywhere you use lambda functions, you could use normal functions instead. A lambda function is not a statement, it is an expression. Lambda functions do not support a block of statements.
filter function
filter(function,iterable) creates a new list from the elmeents for which the function returns True. Example:
#!/usr/bin/env python
list = [1,2,3,4,5,6,7,8,9,10]
newList = filter(lambda x: x % 2 == 0, list)
print(newList)
|
The returning list returns contains only the elements for which the lambda expression “lamba x: x % 2 == 0” is true.
reduce function
The reduce function, reduce(function, iterable) applies two arguments cumulatively to the items of iterable, from left to right. Example:
#!/usr/bin/env python
list = [1,2,3,4,5]
s = reduce(lambda x,y: x+y, list)
print(s)
|
In this case the expression is always true, thus it simply sums up the elements of the list. Another example:
#!/usr/bin/env python
list = [10,6,7,5,2,1,8,5]
s = reduce(lambda x,y: x if (x > y) else y, list)
print(s)
|
Comments
Post a Comment