我为老师创建了一个测验,所有分数都存储在每个班级的文件中,例如,如果学生在1级,他们的分数将被复制到名为class1的文本文件中并且数据将被写入像:
aaron, 1
lllll, 10
kkkkk, 7
然而,我的下一个任务是创建另一个程序供教师使用,因此她键入了她想要的课程和她想要的内容(按字母顺序排列,平均分,从最高到最低分),并在运行时打印出来。到目前为止,这是我的代码,我已经设法按字母顺序排列,但我在平均而且从最高到最低的部分都在努力:
viewclass= input("choose a class number and either alphabetically, average or highest?")
if viewclass=='1 alphabetically':
with open('class1.txt', 'r') as r:
for line in sorted(r):
print(line, end='')
elif viewclass=='2 alphabetically':
with open('class2.txt', 'r') as r:
for line in sorted(r):
print(line, end='')
elif viewclass=='3 alphabetically':
with open('class3.txt', 'r') as r:
for line in sorted(r):
print(line, end='')
答案 0 :(得分:0)
关键是要定义正确的排序key
并使用reverse
。我认为你需要以下“最高”。
r = '''\
aaron, 1
lllll, 10
kkkkk, 7'''.split('\n')
# r is an iterable of non-blank lines, like a file
def score(line):
return int(line.split(',')[1])
for line in sorted(r, key=score, reverse=True):
print(line)
###
lllll, 10
kkkkk, 7
aaron, 1
我不知道'平均'是什么意思。