2010-06-01 35 views

Respuesta

70
>>> a = '1,000,000' 
>>> int(a.replace(',', '')) 
1000000 
>>> 
9

Reemplazar el ',' con '' y luego convertir todo en un entero.

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

También hay una forma sencilla de hacer esto que se deben manejar las cuestiones de internacionalización, así:

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

me encontrado sin embargo que tengo que establecer explícitamente la localización primera de lo contrario no funciona para mí y termino con un rastreo fea en su lugar:

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' 

Así que si eso sucede a usted:

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

¿Quiere decir: 'locale.setlocale (locale.LC_ALL, 'en_US.UTF-8')' Ie "UTF-8", no "UTF8". En mi máquina OSX que parece ser el valor correcto. –

Cuestiones relacionadas