【问题标题】:Reading an integer string in the form of xxx,yyy,zzz with python用python读取xxx,yyy,zzz形式的整数字符串
【发布时间】:2012-02-28 00:48:29
【问题描述】:

是否有内置的简单方法将字符串转换为整数,字符串的格式为 xxx,yyy,zzz?比如 325,121,565 而不是 325121565。我知道我可以构建一个函数来做到这一点,但我想知道是否有人已经这样做了,这样我就不会重新发明轮子了。

【问题讨论】:

  • +1 表示不想重新发明轮子
  • 只需使用strip(",")删除逗号,然后创建一个整数val = int(str)。
  • .strip() 不会删除字符串中间中的任何内容。

标签: python string integer


【解决方案1】:

设置适当的语言环境,然后使用locale.atoi()。

>>> locale.setlocale(locale.LC_NUMERIC, 'en_US')
'en_US'
>>> locale.atoi('123,456,789')
123456789

【讨论】:

  • 这适用于本地语言环境:locale.setlocale(locale.LC_ALL, '')
  • 你知道,有时在 Python 中你的直觉是做一些快速而肮脏的事情(取一个字符串并将所有逗号替换为空,然后输入结果),然后你会发现有一种方法是关于十亿倍的优雅。这是其中之一。 :)
  • @Adam:感谢您驾驶 Guido 的时光机,祝您有美好的一天。
【解决方案2】:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_US.utf8'
>>> locale.format("%d", 325121565, grouping=True)
'325,121,565'

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多