我创建了一个包含多个项目的列表。
例如:
highScoreList = [["Dummy1",40,50],["Dummy2",100,80],["Dummy3",100,90]]
我正在尝试根据值对其进行排序。首先,它应该按最大的第二个值排序(此处:100 大于 40)。
如果有一些元素具有相同的第二个元素(此处:100 和 100),我仍然想使用第三个元素对它们进行排序。第三个元素越小,它的排名就越高(这里:80 小于 90)。
结果应该是:
Dummy2 100
Dummy3 100
Dummy1 40
我过去为一组仅使用 1 个分值编写了一些类似的代码。
def printHighScoreList():
descender = ((key,highScoreList[key]) for key in sorted(highScoreList,key=highScoreList.get, reverse=True))
for key, value in descender:
print(key, value)
最佳答案
根据第三个元素对列表进行升序排序,然后根据列表的第二个元素对结果列表进行降序排序。演示:
>>> highScoreList = [["Dummy1",40,50],["Dummy2",100,80],["Dummy3",100,90]]
>>> sorted(sorted(highScoreList, key=lambda x:x[2]),key=lambda x:x[1],reverse=True)
[['Dummy2', 100, 80], ['Dummy3', 100, 90], ['Dummy1', 40, 50]]
关于python - Python 中多个项目的列表按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079966/