python 中 lambda, map, reduce 函数的简单使用
声明: python学习中, 错误之处敬请谅解
python中有一些有趣的函数, 在这里只是做一些简单的记录,免得遗忘
lambda
- lambad 是匿名函数, 语法结构为: lambda 参数(用逗号分隔):返回值 eg: lambda x,y : x+y
- 下面通过一个例子来实现一个最简单的函数
func = lambda x:x+10 print(func(10)) # 20 #等价于 def func(x): return x+10 print(func(10)) # 20
map
- map的语法结构: map(函数,列表)
- 列表中的每个元素都会执行函数的,执行完成后返回一个新的列表
- 说明: 入参函数的参数个数必须为1, 只能且必须有一个参数
- 简单示例
lt = [1,2,3,4,5,6,7,8] def testMap(x): return x+10 print(map(testMap,lt)) # [11,12,13,14,15,16,17,18] add = lambda y: y+10 print(map(add,lt)) # [11,12,13,14,15,16,17,18]
reduce
- reduce语法结构: reduce(函数, 列表, 初始值(可选参数))
- 如果没有设置初始值时, 会把列表的第一个值和第二个值传递个函数, 再把函数返回的值和列表的第三个值作为参数传递函数, 依次进行, 最终返回一个值
- 如果设置有初始值, 则会把列表的初始值和第一个值传递个函数, 再把函数返回的值和列表的第二个值作为参数传递函数, 依次进行, 最终返回一个值
- 说明: 入参函数的参数个数必须为2, 当列表只有一个元素, 函数不会执行, 直接返回迭代器的首元素
- 简单示例
templt = [1,2,3,4,5,6] def add(x,y): return x + y print(reduce(add,templt)) # 21 print(reduce(add,templt,10)) # 31