2

如果我有一个存储在名为 b_split[1] 的变量中的字符串列表。基本上 b_split 中的第一个位置包含这些纬度值作为字符串。

['10.2']
['10.4']
['10.5']

我希望能够总结它们..

for i in text_file:
    latitude = float(b_split[1])
print sum(latitude)

它给了我一个错误,即“浮动”对象不可迭代

4

2 回答 2

2

纬度应该是一个列表

它应该是

latitude.append(float(b_split[1]))

最后

print sum(latitude)
于 2013-03-05T06:15:49.320 回答
0

如果您不需要结果列表并且只想对项目求和,您可以尝试将您关心的项目直接传递给sum函数:

In [1]: my_list = ['10.2', '10.4', '10.5']

In [2]: sum(float(item) for item in my_list)
Out[2]: 31.1

这将创建列表中每个项目的生成器,并对float每个项目求和。正如@avasal 所提到的,你得到错误的原因是因为你实际上是latitude在每次迭代中重新分配,你的最终结果是一个浮点数(而不是一个列表/可迭代):

In [3]: for item in my_list:
   ...:     my_var = float(item)
   ...:     

In [4]: print my_var
10.5

因此,当您尝试sum它时,您会收到上面看到的错误,因为 sum对 iterable 的元素求和。由于您无法遍历 a float,因此您会收到not iterable错误消息。

于 2013-03-05T06:17:04.637 回答