lamdba的基础用法是:
lambda arguments : expression
示例:
add = lambda x,y:x+y print(add(1,2)) # 3
在lambda x, y : x + y中,x和y是函数的参数,x+y是表达式,它被执行并返回结果。
lambda x, y : x + y返回的是一个函数对象,它可以被赋值给任何变量。
可与python数据处理函数map()、reduce()、filter() 搭配使用
map() 会根据提供的函数对指定序列做映射
示例:
# 取绝对值 data = [-1, 2, -3, 4, -5] new_data = map(lambda x:abs(x), data) print(list(new_data))
# 求和 data = [-1, 2, -3, 4, -5] data1 = [1, -2, 3, -4, 5] new_data = map(lambda x,y:x+y, data,data1) print(list(new_data))
reduce()函数会对参数序列中元素进行累积
示例:
from functools import reduce data = [1,2,3,4] print(reduce(lambda x,y: x+y, data)) # 计算过程 # 1 + 2 = 3 # 3 + 3 = 6 # 6 + 4 = 10
from functools import reduce data = [1,2,3,4] print(reduce(lambda x,y: x+y, data, 5)) # 计算过程 # 5 + 1 = 6 # 6 + 2 = 8 # 8 + 3 = 11 # 11 + 4 = 15
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
示例:
data = [1,2,3,4] print(list(filter(lambda x: x>3, data)))