2015-12-23 3 views
0

Я пытаюсь заставить свою функцию работать в среднем, записать ее в файл и отсортировать с помощью python. Это мой код:как вычислить среднее значение, записать его в CSV-файл, а затем отсортировать его с помощью python

def average_score(filename): 

    with open(filename) as Class: 
     reader = c.reader(Class,delimiter=",") 
     for row in reader: 
      people = [] 
      people.append(row[0]) 
      user, *scores = row 
      average = sum([int(score) for score in scores])/len(scores) 
      a = open(filename,"a").writer(Class) 

      data = [[average]] 

      a.writerows(data) 
      people.append(score) 

      count = count+1 
      list11.insert(count,people) 

    sort=sorted(list11, key = o.itemgetter(4), reverse = False) 
    for eachline in sort: 
     print(eachline) 

CSV файл:

kieran,3,10,7 
ben,4,8,5 
ethan,9,1,4 
oliver,7,2,3 
+0

сделать и хотите, чтобы отсортировать их по баллам или avarages? Я не получаю его –

+0

по их средним значениям по возможности –

ответ

0

Что-то, как это должно работать

def average_score(filename): 

    averages = {} 
    with open(filename) as fd: 
     reader = c.reader(fd, delimiter=",") 

     for row in reader: 
     user, *scores = row 

     # the user has no score 
     if len(scores) == 0: 
      continue 

     averages[user] = sum([int(score) for score in scores])/len(scores) 

    sorted_averages = sorted(averages.items(), key = o.itemgetter(1), reverse = False) 

    # This writes the average to the file, remove if necessary 
    with open(filename, 'a') as fd: 
     for item in sorted_averages: 
     fd.write("{}: {}\n".format(item[0], item[1])) 

    # This prints out to screen, remove if necessary 
    for item in sorted_averages: 
     print("{}: {}".format(item[0], item[1])) 
+0

спасибо, но он сказал для пользователя, avarage в sorted_avarages.items(): AttributeError: объект 'list' не имеет атрибутов 'items' >>> –

+0

извините, пожалуйста протестировать последнюю версию –

+0

cheers mate, это фантастика, но можно распечатать результаты, а затем удалить их, чтобы они не мешали другим программам –

Смежные вопросы