首页 > 解决方案 > Python 根据分数对列表进行排序

问题描述

我对 python 完全陌生(刚开始),我需要一些帮助来编写我编写的似乎不起作用的代码。我的目的是按每个用户写在他们前面的分数对每个用户进行排序,因此输入看起来像:

user1 87.26
user2 65.10
user3 12.3

并且输出应该根据他们前面的数字(他们的分数)对它们进行排序,所以代码看起来像这样,但它不起作用:

score= []
classlist = []
def getinfo () :
    global infolist
    info_input = input()
    if  info_input== "show res":
        validation()
    else :

        classlist.append(info_input.split())
        getinfo()

def validation():
    global infolist
    for each_data in classlist:
        score.append(float(each_data[1]))
        score.sort()
    str(score)
    for eachscore in score :
        for eachuser in classlist:
            if eachscore in eachuser:
                print(eachuser)

getinfo()

标签: python

解决方案


您可以使用带有sorted函数的自定义比较器对分数reverse=True进行排序,并按降序排序:

def validation():
    for user, score in sorted(classlist, key=lambda pair: pair[1], reverse=True):
        print(user, score)

推荐阅读