一、map、reduce 的作用
1. map( 函数,可迭代参数)
函数一次性作用参数
2. reduce( 函数,可迭代参数)
函数依次作用,reduce
把结果继续和序列的下一个元素做累积计算
二、lambda函数
lambda 若干参数逗号隔开 :返回值函数
如:
def fn(x,y)
return x * 10 + y
reduce(fn, [1,3,5]) //reduce格式:reduce(函数,可迭代参数)
⬇
reduce( lambda x,y : x * 10 + y ,[1,3,5] )
作用:
1. lambda可以省去定义函数的过程,精简代码。
2. 对于一些抽象的、不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
练习
廖老师参考代码附件 do_reduce :
def str2float(s):
nums = map(lambda ch: CHAR_TO_FLOAT[ch], s)
point = 0
def to_float(f, n):
nonlocal point
if n == -1:
point = 1
return f
if point == 0:
return f * 10 + n
else:
point = point * 10
return f + n / point
return reduce(to_float, nums, 0.0)