• Python基础(reduce,filter,map函数)


    map函数:

      map函数特点:对可迭代对象中的每个元素进行相同的操作(例如每个元素+1等等)

     1 #————————————————map函数————————————————————
     2 #对列表的各个元素实现加一功能
     3 li=[1,2,3]
     4 #定义一个加一函数
     5 def func1(x):
     6     return x+1
     7 
     8 #第一种map函数使用方式---lambda
     9 res1=map(lambda x:x+1,li)
    10 print(list(res1))
    11 
    12 #第二种map函数使用方式---普通函数
    13 res2=map(func1,li)
    14 print(list(res2))
    map函数两种实现方式

    map扩展(将列表中的数字全部变成字符串):

    print(list(map(str,[1,2,3,4,5,6])))

    reduce函数:

      reduce函数特点:从左到右对一个序列的项累计地应用有两个参数的函数,以此合并序列到一个单一值。(例如累加或累乘列表元素等等)

     1 #————————————————reduce函数————————————————————
     2 #python3在使用reduce函数时需要导入模块
     3 from functools import reduce
     4 nums=[1,2,3,4]
     5 
     6 #实现乘法的普通函数
     7 def func2(x,y):
     8     return x*y
     9 
    10 #第一种使用reduce函数的方式---lambda
    11 res3=reduce(lambda x,y:x*y,nums)
    12 print(res3)
    13 
    14 #第二种使用reduce函数的方式---普通函数
    15 res4=reduce(func2,nums)
    16 print(res4)
    reduce函数

    filter函数:

        filter函数特点:对可迭代对象中的元素按照特定的条件进行筛选。(例如筛选列表中所有的偶数等等)

     1 #————————————————filter函数————————————————————
     2 lis=[0,1,2,3,4,5,6]
     3 
     4 #定义筛选偶数的普通函数一
     5 def func3(x):
     6     if x%2==0:
     7         return x
     8 
     9 #定义筛选偶数的普通函数二
    10 def func4(x):
    11     return x%2==0
    12 
    13 #第一种使用filter函数的方式---lambda
    14 res5=filter(lambda x:x%2==0,lis)
    15 print(list(res5))
    16 
    17 
    18 #在使用两个普通函数时使用时会有一些差异,第一种return 0被当做返回False,因此列表中没有获取到0这个元素,第二种则不会有这种情况。
    19 
    20 #第二种使用filter函数的方式---普通函数一
    21 res6=filter(func3,lis)
    22 print(list(res6))
    23 
    24 #第二种使用filter函数的方式---普通函数二
    25 res7=filter(func4,lis)
    26 print(list(res7))
    filter函数

     *filter的底层实现原理:

    def foo(x):
        return x>5
    
    def filter(func,iter):
        lst=[]
        for i in iter:
            if func(i):
                lst.append(i)
        return lst
    
    ret=filter(foo,[1,2,3,4,5,6,7,8,9])
    print(ret)
  • 相关阅读:
    Python Special Syntax 7:继承
    Python Special Syntax 6:模块的__name__
    Python Special Syntax 5:对象相关
    Python Special Syntax 4:序列相关
    Python Special Syntax 3:删除对象和dir函数
    Python import与from import的区别
    Python Special Syntax 2:天才级的文档互动DocString
    Python Special Syntax 1: Python的局部变量和全局变量
    Python抓取页面乱码问题的解决
    win10居然把Linux的引导覆盖了
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/10213751.html
Copyright © 2020-2023  润新知