python - 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()
解决方案
您可以使用带有sorted
函数的自定义比较器对分数reverse=True
进行排序,并按降序排序:
def validation():
for user, score in sorted(classlist, key=lambda pair: pair[1], reverse=True):
print(user, score)
推荐阅读
- java - 将 lang.string 转换为 JSONObject 时出现 json.JSONException
- heroku - 在heroku上部署获取内部服务器错误后
- c - 如何在 GTK 中使用剪贴板?
- angularjs - 如何在jwt中过期时刷新令牌
- angularjs - 如何在 md 对话框中指定 2 个确定按钮?
- tensorflow - 如何在张量流代码中的每批之后打印占位符值
- ios - SCLAlertView 按钮
- python - Python生成具有约束的随机右偏高斯
- c - 自动存储持续时间结构初始化
- python - 如何让 max() 返回变量名而不是 Python 中的值?