美文网首页Python与数据分析
【Python学习笔记】高阶函数map()、filter()和r

【Python学习笔记】高阶函数map()、filter()和r

作者: 清梦载星河 | 来源:发表于2020-01-30 22:20 被阅读0次

    高阶函数map()、filter()和reduce()

    初学python的时候,对于含有map()filter()reduce()的代码,总有着莫名的敬畏,因为在学习Python之前,有了解过大数据,大数据中有个MapReduce的概念,没搞懂MapReduce,所以在学习Python的时候,看到map和reduce就脑阔疼。而且,很多Python入门书并不谈这三个函数,进阶书又直接运用这三个函数,去互联网找资料吧,很多博客写的不清不楚的,罗里吧嗦讲了一大堆,还是不知道这三个函数什么玩意儿。现在临到我来写了,,,尽量写明了一点吧。

    看山易,近山难

    map() 函数

    map(function,iterable)function是函数,iterable是可迭代对象。map()函数的意思是:iterable中每个元素都应用function举个例子:

    def square1(x):
        '''平方将传来的数'''
        return x**2
    l1 = [1,2,3,4,5]
    map(sqaure1,l1) # 将l1中每个元素平方处理
    

    map()函数会返回一个可遍历的集合,可以使用list()函数转换为列表。

    list(map(square1,l1))
    

    filter() 函数

    filter(function,iterable),对iterable中每个元素都使用function判断。举例:

    li2 = list(filter(lambda x: x % 2 == 0,l1)) # 筛出l1中所有偶数
    

    reduce()函数

    reduce(function,iterable),对iterable中每个元素以及上一次调用的返回结果,运用function进行处理。注意:在Python2中,reduce()是内置函数,而在Python3中放到了functools模块中。举例:

    # Python 3
    from functools import reduce
    result1 = reduce(lambda x,y : x*y,l1) # 1*2*3*4*5 = 120
    

    相关文章

      网友评论

        本文标题:【Python学习笔记】高阶函数map()、filter()和r

        本文链接:https://www.haomeiwen.com/subject/hiywthtx.html