主要内容 #
- 高阶函数: filter(), reduce()
1. 高阶函数: filter() #
filter()函数的功能是根据提供的函数过滤不符合条件的元素,返回由符合条件元素组成的迭代器
语法如下:
filter(function, iterable)
参数说明:
function: 提供的函数
iterable: 可迭代对象
功能:
返回处理好的迭代器
例如:
names = ['Littlefive', 'amanda', 'hellokitty'] print(list(filter(lambda x:x.islower(), names))) # 保留小写的字符串
以上程序图解如下:
保留奇数的过滤器:
def is_odd(n): return n % 2 == 1 print(list(filter(is_odd, [1,2,3,4,5,6,7,8,9,10]))) # 保留奇数
2. 高阶函数: reduce() #
reduce()函数的功能是对参数序列中元素根据指定函数进行累计操作
注:Python3.x reduce() 已经被移到 functools 模块里。
如果我们要使用,需要引入 functools 模块来调用 reduce() 函数
语法如下:
reduce(function, iterable, initializer)
参数说明:
function:有两个参数的函数
iterable:可迭代对象
initializer:可选,初始参数
功能:
返回函数计算的结果
例如:
from functools import reduce def adds(x, y): return x+y print(reduce(adds, [1,2,3,4,5])) # 获得的是列表元素的累加和
以上程序图解如下:
function也可以是lambda函数
from functools import reduce print(reduce(lambda x, y: x+y, [1,2,3,4,5])) # function可以是lambda函数