我試圖在一整年內繪製一個城市的天氣數據,例如high_temp_f和low_temp_f,數據已經存儲在一個CSV文件中。我寫了一個函數來獲取我需要的列,以便將它們繪製在圖表中,但該函數只能在我第一次使用它時才返回數據。Python:爲什麼從CSV文件中獲取列的數據的功能只能第一次返回數據?
CSV文件結構如下:
date,high_temp_f,avg_temp_f,low_temp_f
2016-04-18,69,58,46
2016-04-19,59,52,46
2016-04-20,80,63,46
我寫的代碼如下:
import csv
def data_to_list(data_index):
""" save data to a list """
results = []
for row in data:
results.append(int(row[data_index]))
return results
filename = 'city.csv'
with open(filename) as f_city:
data = csv.reader(f_city)
header = next(data)
high_temp_f_bj = data_to_list(1)
low_temp_f_bj = data_to_list(3)
print(high_temp_f_bj)
print(low_temp_f_bj)
的輸出如下:
[69, 59, 80]
[]
我得到了high_temp_f_bj的結果是[69,59,80],但對於low_temp_f_bj,我只有[]。但是,如果刪除high_temp_f_bj = data_to_list(1)
和的代碼,我可以得到low_temp_f_bj的正確輸出,即[46,46,46]。我感到很困惑!爲什麼我只能使用該功能?