В соответствии с форматом вашего текстового файла, то, после разделения каждой строки на :
вы получите список с двумя значениями, первым затем имя и второй метки, поэтому вы должны использовать line.split(':')[1]
, The после итерация файла завершена, у вас есть несколько строк в списке column
, чтобы выполнить любые арифметические операции над содержимым списка, который вам нужен, чтобы преобразовать все эти элементы списка в int
, который выполняется с помощью функции map()
.
Кроме того, если вы используете Python 2.x, то вам явно нужно преобразовать либо один из sum(list)
или len(list)
плавать, в противном случае среднее всегда будет возвращено как int
.
column = []
for line in open('name,score.txt','r').readlines():
column.append(line.strip().split(':')[1])
column_int = map(int, column)
print "average = ", sum(column_int)/float(len(column_int))
thx для ответа.получить сообщение об ошибке tho: – user00
avg = sum (column)/len (column) ValueError: недействительный литерал для int() с базой 10: 'pon: 9 \ n' – user00
@ user00 Вы правильно поняли код? –