开发者社区> 问答> 正文

字符串 "123" 转换成 123,不使用内置api,例如 int()

字符串 "123" 转换成 123,不使用内置api,例如 int()

展开
收起
珍宝珠 2019-11-11 11:31:46 3576 0
1 条回答
写回答
取消 提交回答
  • 方法一: 利用 str 函数

    def atoi(s):
        num = 0
        for v in s:
            for j in range(10):
                if v == str(j):
                    num = num * 10 + j
        return num
    

    方法二: 利用 ord 函数

    def atoi(s):
        num = 0
        for v in s:
            num = num * 10 + ord(v) - ord('0')
        return num
    

    方法三: 利用 eval 函数

    def atoi(s):
        num = 0
        for v in s:
            t = "%s * 1" % v
            n = eval(t)
            num = num * 10 + n
        return num
    

    方法四: 结合方法二,使用 reduce,一行解决

    from functools import reduce
    def atoi(s):
        return reduce(lambda num, v: num * 10 + ord(v) - ord('0'), s, 0)
    
    2019-11-11 13:13:12
    赞同 展开评论 打赏
问答分类:
API
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载