나는 매년 반환 학년을하려고합니다. 각 학년의 평균을 말합니다. 내가 뭘하려고했는지는 년 : 학년에 맞는 사전을 만든 다음 년의 다른 사전을 얻는 것입니다 : sum_of_grade 등등.평균 배열을 추출하는 사전 작성
Year Grade
2001 100
2002 99
2001 88
2003 11
2005 55
더 많은이 있습니다,하지만 난 그것을 전체 데이터를 가질 필요가 생각하지 않습니다 년 등급 :
은 CSV의 두 헤더를 가지고 파일에서입니다.
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에서()? 그것은 1 년이 될 예정입니까? 또한, 나는이 경우 성적이 추가 될 수있는 방법을 얻지 못합니다. – Mayjunejuly
그래, 미안, 일 년이야. 학년은 * 2001, 100 *을 처음 만났을 때'''[year] = [grade, 1]''로 여기에 덧붙여집니다. 중간 사전은 {2001 : [100, 1]}이 될 것이고 * 2001, 88 *을 만날 것입니다. 중간 사전은 {2001 : [188, 2], 2002 : [99, 1]}입니다. 당신은 단지 평균 성적을 반환하기를 원하기 때문에, 우리는 성적의 합계와 성적의 수를 목록에 저장할 수 있다고 생각합니다. 실제 성적을 추가 할 필요는 없습니다. – Ballack
코드가 작동하지만 주문과 관련없는 것으로 간주합니까? 사촌 그것은 예를 들어, 2001 년부터 시작하지 않고 모든 arond를 섞는다. – Mayjunejuly