python - Python 中多个项目的列表按值排序

标签 python list

我创建了一个包含多个项目的列表。

例如:

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/

相关文章:

python - Python UnicodeDecodeError 最佳实践

python - 从列表中获取特定长度的字符串

Python 列表元组

python - 如何在 Python 中将唯一值的序数分配给列表?

python - (Python) MySQL 数据库身份验证问题

python - Pyephem Alt。和 Az 是完全错误的

java - 多类对象渲染顺序

vb.net - 在列表中查找具有最大值的项目

html - super 快速的 CSS 嵌套列表不会隐藏

javascript - 访问 Jupyter 扩展中的数据对象