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」オブジェクトが反復可能ではないというエラーが表示されます
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」オブジェクトが反復可能ではないというエラーが表示されます
緯度はリストでなければなりません
そしてそれはあるべきです
latitude.append(float(b_split[1]))
そして最後に
print sum(latitude)
結果のリストが不要で、単にアイテムを合計したい場合は、気になるアイテムを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
ため、上記のエラーが発生します。を繰り返すことができないため、エラーが発生します。float
not iterable