Python 解析以逗号分隔的数字为整数

95 投票
3 回答
136613 浏览
提问于 2025-04-15 23:26

我该如何在Python中把字符串1,000,000(一百万)转换成它的整数值呢?

3 个回答

14

把里面的','替换成''(也就是去掉它),然后把整个内容转换成一个整数。

>>> int('1,000,000'.replace(',',''))
1000000
61

还有一种简单的方法可以做到这一点,并且可以处理国际化的问题:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.atoi("1,000,000")
1000000
>>> 

我发现我必须先像上面那样明确设置地区,否则它对我来说就不管用,最后我会看到一堆难看的错误信息:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/locale.py", line 296, in atoi
    return atof(str, int)
  File "/usr/lib/python2.6/locale.py", line 292, in atof
    return func(string)
ValueError: invalid literal for int() with base 10: '1,000,000'
161
>>> a = '1,000,000'
>>> int(a.replace(',', ''))
1000000
>>> 

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答