搞了好久
Topic source第三个不用map的话一行就可以了
return float(s.encode(‘utf-8’))
其实前两道也是
一:return name.capitalize()
二:return reduce(lambda x,y: x*y, L )
我用了,但就是照本宣科,写得很复杂
from functools import reduce
digit={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0}
def str2float(s):
flag=len(s)
s2=s
for i in range(len(s)):
if s[i]=='.':
flag=i
if flag!=len(s):
s1=s.split('.')
s2=s1[0]+s1[1]
def fn(x,y):
return x*10+y
def str2num(s):
return digit[s]
return (reduce(fn,map(str2num,s2)))/(10**(len(s2)-flag))
我用了,但就是照本宣科,写得很复杂
from functools import reduce
digit={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0}
def str2float(s):
flag=len(s)
s2=s
for i in range(len(s)):
if s[i]=='.':
flag=i
if flag!=len(s):
s1=s.split('.')
s2=s1[0]+s1[1]
def fn(x,y):
return x*10+y
def str2num(s):
return digit[s]
return (reduce(fn,map(str2num,s2)))/(10**(len(s2)-flag))
- 1
guna我要学爆
from functools import reduce
# ----------------------------
def normalize(*namelist):
def norm(name):
n = list(name)
for i in range(len(n)):
if i == 0:
n[0] = n[0].upper()
else:
n[i] = n[i].lower()
name = ''.join(n)
return name
return list(map(norm,namelist))
# ----------------------------
def prod(L):
def product(a,b):
return a*b
return reduce(product,L)
# ----------------------------
def str2float(s):
r = 1
s = list(s)
flag = len(s) # 如果没有小数点,则flag保持和len(s)一致
l = []
def trans(a,b):
return a*10+b
for i in range(len(s)):
if s[i] != '.':
l.append(int(s[i]))
else:
flag = i+1
r = reduce(trans,l)
r = r/(10**(len(s)-flag))
return r