python3.x中处理有逗号分割的数字,并转换成整型数值

最近用python3.0处理数据的时候遇到了个问题,对于有逗号分隔的字符串型数字的转换,没有函数可直接进行转化

在python中一般的字符串向数字转化用int()(转化成整型),或者float()(转化成浮点型)函数即可,但是对于“123,123,098,256”这种含有“,”的字符串来说,就不能用上述函数处理。

for example:

>>> var1 = "123"
>>> var2 = "123.1"
>>> 
>>> int(var1)
123
>>> float(var2)
123.1
>>> int(var3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123,123'

解决方法

对于上述var3类型的字符串,可以考虑现将字符串中的“,“去掉或替换后,再进行拼接,有以下两种实现的方法:

1.去掉字符串后拼接

In [81]: var3 = "123,123"
#filter(function,var),function为要对var使用的函数,下式表示只留var3中的数字
In [82]: x = filter(str.isdigit,var3)
In [83]: int("".join(list(x)))
Out[83]: 123123
In [84]: 

2.replace方法

In [84]: var3 = "123,123"

In [85]: int(var3.replace(",",""))
Out[85]: 123123

In [86]: 

用replace方法替换掉字符串中的","后再转化成整数 

 

以上内容如果有错误或不足的地方还望各位博友指正。

  

 

posted @ 2017-05-02 13:29  何帅  阅读(7923)  评论(0)    收藏  举报