我正在尝试使用 Python 中的 Lists 进行奖牌统计排名之类的事情。我有一个不断增长的列表。列表中的每个元素都是一个包含四个元素的列表。
例如:L = [[0,1,2,3],[3,0,6,2]]
我正在尝试对这个列表中的元素进行排名,结果结果是(对于上面的例子):
L = [[3,0,6,2],[0,1,2,3]]
即类似于奖牌计数,内部列表中的第一个元素是金,第二个是银等
有没有一种简单的方法可以在 python 中做到这一点?
不需要做任何花哨的事情,这就是内置的具体sorted
功能。
L = [[0,1,2,3],[3,0,6,2],[3,0,5,2],[3,0,6,3],[11,1,0,0],[3,0,7,1]]
sorted(L,reverse=True)
[[11, 1, 0, 0],
[3, 0, 7, 1],
[3, 0, 6, 3],
[3, 0, 6, 2],
[3, 0, 5, 2],
[0, 1, 2, 3]]
如果您正在寻找的是基于谁拥有最多奖牌的降序排序,您可以使用:
L = [[0,1,2,3],[3,0,6,2],[0,0,0,22]]
sorted(L, key=sum, reverse=True)
指定sum
为键会导致 sorted 调用每个元素上的函数来计算键值。