开发者社区> 问答> 正文

从字符串中提取数字

我有一个包含以x开头的数字的字符串,例如“ x270”“ x9”。它始终以x开头。我需要这些数字。

我正在这样做:

blatz = "x22"
a1 = int(re.search("x(\d+)", blatz).group(1))

这似乎不太像Python。我欢迎更优雅的解决方案。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-25 09:19:10 2891 0
1 条回答
写回答
取消 提交回答
  • 使用re库似乎是过大的选择。您不必搜索模式,因为您是说每个字符串都以x开头。

    因此,您只需进行切片即可:

    blatz = "x22"
    a1 = int(blatz[1:])
    

    如果需要进一步检查,可以查看str.startswith(),str.endswith和/或str.isdigit()。

    尽管切片看起来非常具有Python风格,但也有可能使用其他导致相同目标的字符串方法:

    blatz = "x22"
    a2 = int(blatz.lstrip("x"))  # strip "x" from the left
    a3 = int(blatz.partition("x")[-1])  # get everything after "x"
    a4 = int(blatz.replace("x", ""))  # replace every "x" with empty string
    ...
    

    但是切片速度更快,并且对于Python程序员而言并不罕见。

    回答来源:stackoverflow

    2020-03-25 09:19:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载