Python旧版课程库
Python第 03 期 - 基础查看课程总览

090_自学课 函数 - 高阶函数 2

主要内容

  1. 高阶函数: 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函数

3. 小结

习题

  1. 跳到练习页面