码迷,mamicode.com
首页 > 其他好文 > 详细

4.1、高阶函数

时间:2020-04-03 00:34:45      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:有一个   def   art   函数   python   ret   iter   说明   map   

1、map/reduce

Python内建了map()reduce()函数。

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5]上,就可以用map()实现如下:

技术图片

 

 r=map(f,[1,2,3,4,5])

技术图片

 

 reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4)

技术图片

 

 技术图片

 

( ((1X10+2)X10+3)X10+4)+5

技术图片

 

char2int:返回数字字符对应的值,map()得到字符串对应的所有数值

fn将两个数值变成一个十位数,reduce()得到一串数对应的数

 

def normalize(name):
    return name[0].upper()+name[1:].lower()
list(map(normalize,[adam, LISA, barT]))

[Adam, Lisa, Bart]
def prod(L):
    return reduce(lambda x, y: x  * y,L)

prod([9,7,3,5])
945
def str2float(s):
    for i in range(len(s)):
        if s[i]==.:
            break
    m=reduce(lambda x,y:x*10+y,map(int,s[0:i]))
    n=reduce(lambda x,y:x*0.1+y,map(int,s[:i:-1]))
    return m+n*0.1
str2float(123.45467)123.45467

 

4.1、高阶函数

标签:有一个   def   art   函数   python   ret   iter   说明   map   

原文地址:https://www.cnblogs.com/soberkkk/p/12623781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!