美文网首页
内建函数-map、filter、reduce

内建函数-map、filter、reduce

作者: 午字横 | 来源:发表于2023-04-26 15:11 被阅读0次

    内建函数:print(dir(__builtin__))
    >>> ...

    1:map函数:
    a=map(lambda x:x*x+1,[1,2,3,4])
    print(list(a))
    
    a=map(lambda x:x*x+1,range(0,10,2))
    print(list(a))
    
    a=map(lambda x,y:x*y+1,range(5),range(5,10,1))
    print(list(a))
    
    2:filter函数:
    a=filter(lambda x:x%2,range(5))
    print(list(a))
    
    def foo(x):
        if x>5:
            return x
    
    a=filter(foo,range(10))
    print(list(a))
    
    from functools import reduce
    
    a=reduce(lambda x,y:x+y,range(5))
    print(a)
    
    3:reduce:
    from functools import reduce
    
    a=reduce(lambda x,y:x+y,range(5))
    print(a)
    
    def foo(x,y):
        return x+y
    a=reduce(foo,range(5))
    print(a)
    
    练习:
    #1.使用map完成,计算1到9所有的数字的平方,并且把每个数字转为字符串
    
    a=map(str,map(lambda x:x*x,range(10)))
    print(list(a))
    
    
    #2.使用reduce完成,把列表里的数字变换成整数,比如[1, 3, 5, 7, 9]变成13579
    from functools import reduce
    
    def counter(x,y):
        return x*10+y
    a=reduce(counter,range(5))
    print(a)
    
    
    # 3.去除列表中带4的手机号
    nums=['18303517744', '15020030417', '15088931331', '15906878938', '13646514938', '13706636314', '18867793298', '13739742666', '15731102345', '13859652222', '18232102678', '13601261337', '15231099666', '18337728521', '15203802168', '18331758666', '18736599499', '13930109099', '15738888289', '15738888538', '15738888576', '15738888697', '15738888963', '13797904444', '15243191111', '18405311888', '18405312888', '13791080000', '13791090000', '13908376207', '13908335110', ]
    
    for i in nums:
        tmp=i.find("4",10)
        print(tmp)
    # find方法,当前i中没有“4”这个字符 则返回-1
    
    a=filter(lambda  x:x.find("4",0)==-1,nums)
    print(list(a))
    
    
    

    2023-04-27

    相关文章

      网友评论

          本文标题:内建函数-map、filter、reduce

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