Python函数lambda()的使用方法及其在函数式编程中的应用
发布时间:2023-06-08 04:11:46
Python中lambda()是一个高阶函数,也称为匿名函数或闭包函数,它的形式如下:
lambda argument_list: expression
其中,lambda关键字表示定义一个函数,argument_list表示函数的参数列表,用逗号隔开,expression表示函数执行的表达式。
lambda()的使用方法:
1. 定义一个简单函数:
# 普通函数
def add(x, y):
return x + y
# lambda函数
add = lambda x, y: x + y
2. 将lambda函数作为参数传递给其他函数:
# 使用map()函数将列表中的元素全部转为字符串类型 lst = [1, 2, 3, 4] lst_str = list(map(lambda x: str(x), lst))
3. 将lambda函数作为返回值:
# 定义一个计算平方的函数,返回一个lambda函数
def square():
return lambda x: x**2
sq = square()
print(sq(5)) # 输出25
lambda()在函数式编程中的应用:
1. filter()
filter()函数接收一个函数与一个可迭代对象作为参数,返回可迭代对象中符合条件的元素。这个函数与lambda()函数结合起来使用效果更佳。如下:
# 过滤出一个列表中所有奇数 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] odd_lst = list(filter(lambda x: x % 2 != 0, lst)) print(odd_lst) # 输出[1, 3, 5, 7, 9]
2. map()
map()函数接收一个函数与一个可迭代对象作为参数,通过对可迭代对象中的元素执行函数得到新的列表。如下:
# 将一个列表中的数全部平方 lst = [1, 2, 3, 4] sq_lst = list(map(lambda x: x**2, lst)) print(sq_lst) # 输出[1, 4, 9, 16]
3. reduce()
reduce()函数是Python2中的内置函数,在Python3中需要从functools模块中导入。它接收一个函数与一个可迭代对象作为参数,将可迭代对象中的元素按顺序迭代,依次执行函数并返回一个值。如下:
# 将一个列表中所有的数相加 from functools import reduce lst = [1, 2, 3, 4, 5] sum_lst = reduce(lambda x, y: x + y, lst) print(sum_lst) # 输出15
lambda()是Python中十分重要的一个函数,它可以帮助我们更方便地定义简单的函数,同时也十分有用地应用在函数式编程中。但是,由于它是一个匿名函数,可读性较差,不适合处理过于复杂的问题。因此,在编写代码时需要根据实际情况选择使用。
