• map函数和reduce函数、filter函数的区别


    ①从参数方面来讲:
    map()函数:
      map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。
    reduce()函数:
    reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。

    ②从对传进去的数值作用来讲:
    map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次;
    reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算),
    最终结果是所有的元素相互作用的结果。


    ③filter

     Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,

     然后根据返回值是True还是False决定保留还是丢弃该元素。


    def is_odd(n):
    return n%2 ==1
    a = filter(is_odd, [1,2,3,5,111,4])
    b =list(a)
    print(b)

    等同于 :
    a =list(filter(lambda x:x%2==1,[1,2,3,5,111,4]))
    print(a)

    结果:[1, 3, 5, 111]

     练习:

    计算:lambda和reduce实现1到100的累加
    from functools import reduce
    print(reduce(lambda x,y:sum([x,y]),range(1,101)))  #第一个参数是一个函数,第二个参数是一个序列


    print(map(lambda x,y:sum([x,y]),range(1,101),range(1,101))) #第一个参数是一个函数,第二个参数是一个序列
     


    print(list(map(lambda x,y:sum([x,y]),range(1,101),range(1,101)))) #第一个参数是一个函数,第二个参数是一个序列

    
    

  • 相关阅读:
    华为内部面试题库(20)
    华为内部面试题库(18)
    华为内部面试题库(14)
    华为内部面试题库(12)
    华为内部面试题库(16)
    华为内部面试题库(17)
    华为内部面试题库(11)
    华为内部面试题库(13)
    Windows 危险的注册表键
    逆向工程师要学什么?
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10173003.html
Copyright © 2020-2023  润新知