python中的元素排名列表

时间:2012-11-19 22:24:22

标签: python list rank

我正在尝试使用python中的列表进行奖牌排名。我有一个不断增长的列表。列表中的每个元素都是一个包含四个元素的列表。

例如:L = [[0,1,2,3],[3,0,6,2]]

我正在尝试对这个列表中的元素进行排名,结果结果是(对于上面的例子):

L = [[3,0,6,2],[0,1,2,3]],比如奖牌统计,内部列表中的第一个元素是金,第二个是银等

在python中有一种简单的方法吗?

3 个答案:

答案 0 :(得分:4)

您可以使用内置的sorted

sorted(L, reverse=True)

[编辑:以上将按金币总数,银牌数等排名。这似乎是排名金属的最常见方式(参见Metal Tally here)。您也可以定义自己的功能,并使用cmp关键字以不同的方式对它们进行排名。]

答案 1 :(得分:1)

无需做任何花哨的事情,这特别是内置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]]

答案 2 :(得分:0)

如果你要找的是基于谁拥有最多奖牌的降序排序,你可以使用:

L = [[0,1,2,3],[3,0,6,2],[0,0,0,22]]
sorted(L, key=sum, reverse=True)

sum指定为键会导致排序以调用每个元素上的函数来计算键值。