web-dev-qa-db-ja.com

Pythonコンマ区切りの数値をintに解析する

可能性のある複製:
Pythonを使用して、3桁ごとの区切り記号としてカンマが含まれる文字列を数値に変換するにはどうすればよいですか?

Pythonでは、文字列1,000,000(100万)を整数値にどのように解析しますか?

46
roryf
>>> a = '1,000,000'
>>> int(a.replace(',', ''))
1000000
>>> 
89
joaquin

国際化の問題も同様に処理する簡単な方法があります。

>>> import locale
>>> 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'

それがあなたに起こったら:

>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF8')
'en_US.UTF8'
>>> locale.atoi("1,000,000")
1000000
>>> 
35
Khorkrak

'、'を ''に置き換えてから、全体を整数にキャストします。

>>> int('1,000,000'.replace(',',''))
1000000
9
jathanism