Python 从字符串添加元素
我有一个这样的字符串:"1 1 3 2 1 1 1 2 1 1 1 1 1 1 1 1,5 0,33 0,66 1 0,33 0,66 1 1 2 1 1 2 1 1 2 0,5 0,66 2 1 2 1 1 1 0 1。
我想知道在Python中怎么把这些元素加在一起?
我试过:
list = []
for x in str.replace(' ', ''):
list.append(x)
sum = 0
for y in list:
sum = sum + double(x)
但是我一直在出错。
7 个回答
4
别太以自我为中心。对很多人来说,','(逗号)是一个合法的小数点。不要去替换它,而是使用locale模块来适应它:
>>> s = "1 1 3 2 1 1 1 2 1 1 1 1 1 1 1 1,5 0,33 0,66 1 0,33 0,66 1 1 2 1 1 2 1 1 2 0,5 0,66 2 1 2 1 1 1 0 1"
>>> import locale
>>> locale.setlocale(0,"po")
'Polish_Poland.1250'
>>> sum(map(locale.atof, s.split()))
45.639999999999993
4
用“python风格”的方法来做:
sum([float(num) for num in str.replace(',', '.').split(' ')])
这个方法是先把字符串按照空格分开,变成一个列表,然后把每个部分转换成浮点数(小数),最后把这些数加起来。
7
print sum(float(x.replace(',', '.')) for x in str.split(' '))
输出结果:
45.64