在编程语言中,高阶函数指的是接受函数作为输入或输出的函数。
map概述
python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable)。需要传入一个函数,这个函数可以是内置的,也可以是自己定义,也可以是匿名函数即lambda。第二个参数是一个可迭代对象,如列表、字典字符串等。map函数返回的是一个map对象,也是一个可迭代对象,可以利用for循环迭代查看元素,也可以尝试list()将其转为列表对象操作,map形式:
map(function, iterable, ...)
map用法
1.计算列表中所有数的平方
示例结果:
[1, 4, 9, 16][1, 4, 9, 16]
2. 处理序列对象中的字符串
示例结果:
['I like Python', 'Python make me happy', 'without python, without living.']['I like Python', 'Python make me happy', 'without python, without living.']
多参数传递
map也接受多个可迭代对象作为参数传递,若可迭代对象元素数量不一致则传递至元素数量最小的为止
示例结果:
66666
reduce概述
reduce用于对可迭代对象中的元素进行累积操作,reduce接受两个参数,一个是函数f(x, y)参数(该函数必须有两个参数),另一个是可迭代对象。reduce行为是先将可迭代对象的前两个元素传入f(x, y)中,然后不断将f(x, y)的返回值再次和下一个迭代对象传入f(x, y),直到迭代完迭代对象中的元素,并返回最终的f(x, y)的返回值。reduce形式:
reduce(function, iterable[, initializer])
reduce用法
在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数。
示例结果:
15
上例即我们通过reduce高阶函数完成了对列表中五个数的累加过程。
filter概述
filter用于过滤筛选可迭代对象中的元素,如果符合条件则返回对应的元素序列(类型为filter),filter接受两个参数,一个是函数用于筛选元素,返回值为True或Flase,另一个是可迭代对象。
filter用法
示例结果:
[2, 4, 6, 8]
联系客服