用其元素在Python中排序列表

2024-05-05 13:48:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试做一些事情,比如用python语言对奖牌榜进行排名。我有一个不断增长的清单。列表中的每个元素都是一个包含四个元素的列表。在

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

我试图对这个列表中的元素进行排序,结果是(对于上面的示例):

也就是说,像奖牌榜,里面的第一个元素是金,第二个元素是银,等等

在python中有没有一种简单的方法可以做到这一点?在


Tags: 方法语言元素示例列表排序事情奖牌榜
3条回答

您只需使用内置的sorted

sorted(L, reverse=True)

[编辑:上面的数字将按黄金的总数排序,然后是银的数量等等。这似乎是对金属进行排名的最常用方法(参见Metal Tally here))。您还可以定义自己的函数,并使用cmp关键字以不同的方式对它们进行排序。]

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

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

指定sum作为键会导致sorted调用每个元素上的函数来计算键值。在

不需要做任何花哨的事情,这就是内置的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]]

相关问题 更多 >