练习1: rom functools import reduce
def normailize1(name): return name[0].upper()+name[1:].lower()
L1=['admam','LISA','barT'] L2=list(map(normailize1,L1)) print(L2)
练习2: from functools import reduce
def prod(L): def fn(x,y): return xy return reduce(fn,L) print('3579=',prod([3,5,7,9]))
if prod([3,5,7,9])==945: print('test sucessfully') else: print('test failed')
练习3: from functools import reduce DIGITS={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6}
def str2float(s): L=s.split('.',1)#利用split 函数将字符串以‘.’为分隔符分成2部分:整数部分,小数部分 L1=L[0]#将L第一个元素整数123赋值给L1 L2=L[1]#将L第2个元素小数部分456赋值给L2 L3=L2[::-1]#将456转换成654赋给L3 def fn1(x,y):#处理整数部分 return x*10+y def fn2(x,y):#处理小数部分,得出4.56,所以reduce 最后还要除以10 return x/10+y def char2num(s): return DIGITS[s]
return reduce(fn1,map(char2num,L1))+reduce(fn2,map(char2num,L3))/10
print(str2float('123.456'))
Sign in to make a reply
放声再见123
练习1: rom functools import reduce
def normailize1(name): return name[0].upper()+name[1:].lower()
L1=['admam','LISA','barT'] L2=list(map(normailize1,L1)) print(L2)
练习2: from functools import reduce
def prod(L): def fn(x,y): return xy return reduce(fn,L) print('3579=',prod([3,5,7,9]))
if prod([3,5,7,9])==945: print('test sucessfully') else: print('test failed')
练习3: from functools import reduce DIGITS={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6}
def str2float(s): L=s.split('.',1)#利用split 函数将字符串以‘.’为分隔符分成2部分:整数部分,小数部分 L1=L[0]#将L第一个元素整数123赋值给L1 L2=L[1]#将L第2个元素小数部分456赋值给L2 L3=L2[::-1]#将456转换成654赋给L3 def fn1(x,y):#处理整数部分 return x*10+y def fn2(x,y):#处理小数部分,得出4.56,所以reduce 最后还要除以10 return x/10+y def char2num(s): return DIGITS[s]
print(str2float('123.456'))