Discuss / Python / 折腾了好久,遇到好多问题,自己琢磨出来了,共享一下吧!

折腾了好久,遇到好多问题,自己琢磨出来了,共享一下吧!

Topic source

Todayzhou

#1 Created at ... [Delete] [Delete and Lock User]

第三题实现:

def split_test(s):
    S=s.split('.')
    return int(S[0])+int(S[1])/10**len(S[1])

from functools import reduce
def str2float(s):
    a=len(s)-s.find('.')-1
    s=s.replace('.','')
    return reduce(lambda x,y:x*10+y,map(int,s))/10**a
L='123.456'
print(str2float(L))
以上代码简单的拆分如下:
def str2float_map(s):
    s=s.replace('.','')
    return map(int,s)
def str2float_re(x,y):
    return x*10+y
from functools import reduce
L='123.456'
a=len(L)-L.find('.')-1
print(reduce(str2float_re,str2float_map(L))/10**a)      #注意这里必须把int()放在map里执行,否则无法把把参数传入reduce,因为reduce要的参数是一个iterator!!直接在str2float_map里int的话就把字符串变成了整形了。

第一题实现(自己折腾了一个多小时)

def Atoa(s):
    S=[]
    L=list(s)
    S.append(L[0].upper())
    # print(S[0])
    for n in L:
        S.append(n.lower())
    S.pop(1)
    name="".join(S)             #把list值连接起来,""中的内容表示用什么连接,我置为空。
    return name
names=['adam', 'LISA', 'barT']
uppername=map(Atoa,names)
print(list(uppername))

  • 1

Reply