zoukankan      html  css  js  c++  java
  • 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)))) #第一个参数是一个函数,第二个参数是一个序列

    
    

  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10173003.html
Copyright © 2011-2022 走看看