我正在嘗試做回年,每年的平均分數。 我想要做的是創建一個符合年份的字典:年級,然後得到另一個年份字典:sum_of_grade然後等等。創建一個字典,提取平均數字
它從csv文件,它有兩個頭是:一年級
Year Grade
2001 100
2002 99
2001 88
2003 11
2005 55
還有很多,但我不認爲這是需要有完整的數據。
def construct_values(file):
"""
Construct the values needed to graph the average grade of the class over time
Parameters
----------
file_path: A string. Absolute path to file.
Returns
-------
years: array of integers
average_grades: array of floats
"""
years, average_grades = [], []
grades = []
d = {}
with open(file,'r') as f:
next(f)
for line in f:
year, grade = (s.strip() for s in line.split(','))
years.append(year) # array year
grades.append(grade) # array grade
d = dict(zip(years,grades)) # dict year:grade
for i,j in d:
# i for count frequencies of years
# j for summation of grades
# j/i for average grade and extract as array
return years, average_grades
我試圖說清楚,但如果仍不清楚,請告訴我。
怎麼了我在years.append()?它應該是年嗎?另外,在這種情況下,我不明白如何添加成績。 – Mayjunejuly
是的,我很抱歉,今年。這個年級附加在這裏:'''d [year] = [grade,1]''',當你第一次見面* 2001,100 *時。中間字典將是{2001:[100,1]},然後符合* 2001,88 *。中間字典將是{2001:[188,2],2002:[99,1]}。因爲您只想返回平均成績,所以我認爲我們可以保存成績的總和以及列表中的成績數。沒有必要附加實際的成績值。 – Ballack
您的代碼正常工作,但這不考慮訂單嗎?因爲它是所有重要的,而不是從2001年開始。 – Mayjunejuly