高阶函数的使用

这里主要介绍2个函数:map, filter

1、map函数

通过查看源码发现,map函数接收两个参数,分别是函数和可迭代对象。map将函数依次作用于可迭代对象的每次元素,即可简单的实现复杂的功能

# 将输入的字符串类型的数据转化为 浮点型数据并返回
map(float, input("请输入数字:”).split(","))

第一个参数可以自定义

# 通过自定义函数,将list中的元素都加1
def f(x):
    return x + 1
list = [2,3,4,5,6]
map(f, list)

2、filter函数

filter函数的功能和map函数类似,但是具有筛选功能,即根据返回值为True还是False来决定保留还是丢弃某个元素,可以理解为返回满足函数条件的元素

这里贴上源码解释:

filter(function or None, iterable) --> filter object
    
    Return an iterator yielding those items of iterable for which function(item)
    is true. If function is None, return the items that are true.

我们来看一个例子:

def is_even(n):
    return n % 2 == 0

filter(is_even, [1, 2, 4, 5, 6, 9, 10, 15])

结果:[2,4,6,10]

猜你喜欢

转载自www.cnblogs.com/7yuanjie/p/10099882.html