joa*_*uin 92

>>> a = '1,000,000'
>>> int(a.replace(',', ''))
1000000
>>> 
Run Code Online (Sandbox Code Playgroud)


Kho*_*rak 36

还有一种简单的方法可以处理国际化问题:

>>> import locale
>>> locale.atoi("1,000,000")
1000000
>>> 
Run Code Online (Sandbox Code Playgroud)

我发现虽然我必须首先明确设置语言环境,否则它对我不起作用,而我最终会得到一个丑陋的追溯:

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'
Run Code Online (Sandbox Code Playgroud)

所以如果你遇到这种情况:

>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF8')
'en_US.UTF8'
>>> locale.atoi("1,000,000")
1000000
>>> 
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是:`locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')` 即“UTF-8”,而不是“UTF8”。在我的 OSX 机器上,这似乎是正确的值。 (3认同)
  • 这仍然会转换错误的值,如 1,0,0,10 到 10010 (2认同)

jat*_*ism 9

将','替换为'',然后将整个事物转换为整数.

>>> int('1,000,000'.replace(',',''))
1000000
Run Code Online (Sandbox Code Playgroud)