在Python中,lambda
函数是一种匿名函数,即没有名字的函数。lambda
函数可以接受任意数量的参数,但只能有一个表达式,这个表达式的值会被自动返回。lambda
函数通常用于需要简单函数对象的场合,比如排序、映射等。
以下是lambda
函数的基本语法:
lambda arguments: expression
以下是一些lambda
函数的使用示例:
lambda
函数add = lambda x, y: x + y
print(add(5, 3)) # 输出: 8
这里,lambda x, y
定义了一个接受两个参数x
和y
的匿名函数,x + y
是函数要执行的表达式,其结果将被返回。
sorted
函数中使用lambda
students = [{'name': 'Alice', 'age': 24}, {'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 23}]
sorted_students = sorted(students, key=lambda x: x['age'])
print(sorted_students)
# 输出: [{'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 23}, {'name': 'Alice', 'age': 24}]
这里,lambda
函数被用作sorted
函数的key
参数,以便根据字典列表中每个字典的'age'
键的值来排序。
map
函数中使用lambda
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16, 25]
map
函数会遍历numbers
列表中的每个元素,并将其传递给lambda
函数,lambda
函数计算每个元素的平方,最后返回一个新的迭代器。
filter
函数中使用lambda
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6]
filter
函数会遍历numbers
列表,lambda
函数用于检查每个元素是否为偶数,只有当lambda
函数返回True
时,元素才会被包含在结果中。