在Python中,将“1,374”或“21,000,000”之类的字符串转换为1374或21000000等int值的干净而优雅的方法是什么?
答案 0 :(得分:9)
这取决于你从哪里得到你的号码。
如果您要转换的号码来自用户输入,请使用locale.atoi()
。这样,数字将以与用户设置和期望一致的方式进行解析。
另一方面,如果您从一个文件中读取它,但总是使用相同的格式,请根据您的具体情况使用int("1,234".replace(",", ""))
或int("1.234".replace(".", ""))
。这不仅更易于阅读和调试,而且不受用户的语言环境设置的影响,因此您的解析器可以在任何系统上运行。
答案 1 :(得分:4)
locale.atoi()
,在设置了适当的区域设置后。
答案 2 :(得分:2)
int("1,374".replace(",",""))
答案 3 :(得分:2)
>>> s="1,374"
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, '')
'en_US.UTF-8'
>>> locale.atoi(s)
1374