python - lambda函数、map函数、filter函数
lambda函数
lambda函数是一种小的匿名函数。可接收任意数量的参数,但只能有一个表达式。
语法:lambda argument : expression 执行表达式,并返回结果
实例1:
一个lambda函数,a为参数,表达式为给a加10
x = lambda a: a + 10 print(x(3)) # 打印:13
实例2:
一个lambda函数,a,b为参数,表达式为 a*b
x = lambda a, b: a * b print(x(2, 3)) # 打印:6
使用场景1:把lambda用作另一个函数内的匿名函数
使所传入的数字乘以n倍(使用相同的函数定义来生成两个函数)
def my_func(n): return lambda a: a * n my_double = my_func(2) # 使所传入的数字乘以2倍 a = my_double(10) print(a) # 打印:20 my_triple = my_func(3) # 使所传入的数字乘以3倍 b = my_triple(10) print(b) # 打印:30
map函数
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法:
map(function, iterable, ...)
例子:求列表中每个元素的平方
def sq(x): return x**2 a= list(map(sq, [1, 2, 3])) print(a) # 打印:[1, 4, 9] b = list(map(lambda x: x**2, [1, 2, 3])) print(b) # 打印:[1, 4, 9]
filter函数
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表。常与lambda一起使用
语法:filter(function,iterable)
例子:求列表中的偶数
list_num = [1, 2, 3, 4, 5, 6] print(list(filter(lambda x: x%2==0, list_num))) # 打印:[2, 4, 6]