2010-06-01 9 views
33

Возможный дубликат:
How do I use Python to convert a string to a number if it has commas in it as thousands separators?Python разбора разделенных запятыми число в Int

Как бы я разобрать строку 1,000,000 (один миллион) в это целое значение в Python?

+2

См. Http://stackoverflow.com/questions/1779288/how-do-i-use-python-to-convert-a-string-to-a-number-if-it-has-commas-in -it-as-tho/1779324 – unutbu

ответ

9

Замените ',' на '', а затем переведите все это в целое.

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

Там также простой способ сделать это, что должны решать вопросы интернационализации, а также:

>>> import locale 
>>> locale.atoi("1,000,000") 
1000000 
>>> 

Я нашел, однако, что я должен явно установить локаль первую в противном случае она не работает для меня и я в конечном итоге с некрасивым TRACEBACK вместо:

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 
>>> 
+0

Вы хотите сказать: 'locale.setlocale (locale.LC_ALL, 'en_US.UTF-8')' Т.е. «UTF-8», а не «UTF8». На моей машине OSX, которая кажется правильной. –

 Смежные вопросы

  • Нет связанных вопросов^_^