2

b_split[1] という変数に格納された文字列のリストがあるとします。基本的に、b_split の 1 番目の位置には、これらの緯度の値が文字列として含まれています。

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

私はそれらを合計できるようにしたい..

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

「float」オブジェクトが反復可能ではないというエラーが表示されます

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各反復で実際に再割り当てしているためであり、最終結果はfloat(リスト/反復可能ではない)になります。

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

In [4]: print my_var
10.5

したがって、これを実行しようとすると、sumがiterableの要素を合計するsumため、上記のエラーが発生します。を繰り返すことができないため、エラーが発生します。floatnot iterable

于 2013-03-05T06:17:04.637 に答える