import matplotlib
import csv
f = open("Species.csv")
reader = csv.reader(f)
y1974 = []
y1983 = []
y1987 = []
y1989 = []
y1994 = []
y1999 = []
y2004 = []
y2009 = []
y2014 = []
dbhByYear = [y1974, y1983, y1987, y1989, y1994, y1999, y2004, y2009, y2014]
def average(alist):
sum = 0
for item in alist:
sum += float(item)
avg = sum / len(alist)
return avg
species = input("Enter abbreviation for species you would like to analyze: ")
for row in reader:
if row[4] == species:
if row[6]!='999':
y1974.append(row[6])
if row[7] != '999':
y1983.append(row[7])
if row[9] != '999':
y1987.append(row[9])
if row[11] != '999':
y1989.append(row[11])
if row[13] != '999':
y1994.append(row[13])
if row[15] != '999':
y1999.append(row[15])
if row[18]!= '999':
y2004.append(row[18])
if row[20] != '999':
y2009.append(row[20])
if row[23] != '999':
y2014.append(row[23])
print(average(y1989))
print(average(y1994))
averages = {}
averages["y1989"]=average
我的问题是如何创建一个字典,其中年份为键,平均DBH为值。
如果有人感到困惑(我敢打赌人们会对我们的目标做什么)请告诉我,我会尽力解决你可能遇到的问题。
答案 0 :(得分:0)
好!您的上一次编辑向我展示了您错误的位置! average
是一个函数,因此将它分配给字典键不会将该函数应用于该字典键,但实际上,"重命名"功能(这有点掩盖,但它与你的问题无关)。
因此,为了让它按照您期望的方式运作,您需要将最后一行更改为:
averages["y1989"]=average(y1989)
就像你在上面的print语句中所做的那样。