Loading lesson path
A lambda function is a small anonymous function. A lambda function can take any number of arguments, but can only have one expression.
expression The expression is executed and the result is returned:
Add 10 to argument a, and return the result:
x = lambda a : a + 10 print(x(5))Lambda functions can take any number of arguments:
with argument b
and return the result:
x = lambda a, b : a * b print(x(5, 6))Summarize argument a, b, and c
and return the result:
x = lambda a, b, c : a + b + c print(x(5, 6,
2))The power of lambda is better shown when you use them as an anonymous function inside another function. Say you have a function definition that takes one argument, and that argument will be multiplied with an unknown number:
def myfunc(n):
return lambda a : a * nUse that function definition to make a function that always doubles the number you send in:
def myfunc(n):
return lambda a : a * n mydoubler = myfunc(2)
print(mydoubler(11))Or, use the same function definition to make a function that always triples the number you send in:
def myfunc(n):
return lambda a : a * n mytripler = myfunc(3)
print(mytripler(11))Or, use the same function definition to make both functions, in the same program:
def myfunc(n):
return lambda a : a * n mydoubler = myfunc(2)Formula
mytripler = myfunc(3)print(mydoubler(11))
print(mytripler(11))Use lambda functions when an anonymous function is required for a short period of time.
Formula
Lambda functions are commonly used with built - in functions like map(), filter(), and sorted().The map() function applies a function to every item in an iterable:
Double all numbers in a list: numbers = [1, 2, 3, 4, 5]
Formula
doubled = list(map(lambda x: x * 2, numbers))print(doubled)The filter() function creates a list of items for which a function returns
Filter out odd numbers from a list: numbers = [1, 2, 3, 4, 5, 6, 7, 8]
Formula
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))print(odd_numbers)The sorted() function can use a lambda as a key for custom sorting:
Sort a list of tuples by the second element: students = [("Emil", 25), ("Tobias", 22), ("Linus", 28)]
Formula
sorted_students = sorted(students, key = lambda x: x[1])print(sorted_students)words = ["apple", "pie", "banana", "cherry"]
Formula
sorted_words = sorted(words, key = lambda x: len(x))print(sorted_words)