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

本文阅读 1 分钟
首页 Python笔记 正文

方法一: 利用 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)
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

Python中变量的作用域?(变量查找顺序)
« 上一篇 01-31
Given an array of integers
下一篇 » 01-31

发表评论

惪特博客
  • 文章总数:
    18355 篇
  • 评论总数:
    52548 条
  • 标签总数:
    8664 个
  • 总浏览量:
    16135560 次
  • 最后更新:
    3小时前

最多点赞

随便看看

标签TAG