# map函数:# 把函数作用在interable的每一个元素上,从而生成一个interator# r = map(str,[1,2,3,4,5,6,7])# list(r) --->('1','2','3'....)]## reduce函数:# 接收两个参数,并且把这两个参数的函数值用于和下一个参数一起再次进行函数运算:# reduce(f,[x1,x2,x3,x4]) ---> f(f(f(x1,x2),x3),x4)from functools import reduce def normalize(name): name = name[0].upper() + name[1:].lower() return name # 测试:L1 = ['adam', 'LISA', 'barT'] L2 = list(map(normalize, L1)) print(L2) print("-----------------") def prod(L): r = reduce(lambda x,y:x*y,L) return r print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9])) if prod([3, 5, 7, 9]) == 945: print('测试成功!') else: print('测试失败!') print("-----------------") def str2float(s): num_part = s.split('.') r = reduce(lambda x,y:x+y/(10**len(num_part[1])),map(int,num_part)) return r print('str2float(\'123.456\') =', str2float('123.456')) if abs(str2float('123.456') - 123.456) < 0.00001: print('测试成功!') else: print('测试失败!')
用int()函数是作弊的,如果能用int,那也能用float(),直接就变浮点数了,哪来这么多段。
Sign in to make a reply
用户7275926253