将一个.text文件中的数据从最高到最低排序并将其打印到另一个文本文件

时间:2015-02-14 16:34:01

标签: python sorting python-3.x

我为老师创建了一个测验,所有分数都存储在每个班级的文件中,例如,如果学生在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='')

1 个答案:

答案 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

我不知道'平均'是什么意思。