Discuss / Python / 第三题

第三题

Topic source
def str2float(s):
    ss=s.replace('.','')
    def fn(x,y):
        return x*10+y
    def char2num(ss):
        return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[ss]
    return float(reduce(fn,map(char2num,ss)))/(10**(s.index('.')))

你们能给我讲下return后面的[s]什么意思不?

同求[s]啥意思

czzga

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

{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} 是一个dict,[s]可以取出该dict中对应的值。比如s='1'(字符型),{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]=1(数值型)。 详情可参考前面的 使用dict和set

Sir_Gawaine

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

没人发现问题吗?我觉得是蒙上的,问题出在s.index


  • 1

Reply