を整数に(リストの)インデックスを変換しない私は、関数に建て使用せずに、このリストの平均値、最小値と最大値を取る必要があるが、それは例外がスローされます。Pythonの:どのように私は
File "<ipython-input-150-ff44c542ba16>", line 10, in problem2_8
if temp_list[item]<lowest:
TypeError: list indices must be integers or slices, not float
ここに私のコードです:
hourly_temp = [40.0, 39.0, 37.0, 34.0, 33.0, 34.0, 36.0, 37.0, 38.0, 39.0, \
40.0, 41.0, 44.0, 45.0, 47.0, 48.0, 45.0, 42.0, 39.0, 37.0, \
36.0, 35.0, 33.0, 32.0]
def problem2_8(temp_list):
total=0
for item in temp_list:
total=total+item
print("Average: ",total/len(temp_list))
low=0
lowest= int(low)
for item in temp_list:
if temp_list[item]<lowest:
lowest=temp_list[list]
print("Low: ",lowest)
問題は何だと思いますか?エラーメッセージはかなり明確です。序数インデックス値を使用して、値自体ではなくリストにインデックスを付ける必要があります。 – EdChum
'' for index、列挙するアイテム(temp_list) ''を実行します。そして '' item''ではなく '' index''を使います。 – Liliane
「for each」ループの仕組みではありません。おそらく、あなたは['for'ループチュートリアル](https://docs.python.org/3/tutorial/controlflow.html#for-statements)に戻って詳細を読むべきでしょうか?何が起こっているのかを知るために、ループ内の* print * 'item'を試してください。 –