如何按元素排序python列表?

时间:2019-10-10 20:47:04

标签: python

我有一个名为分数的列表:[[['test', 1]], [['t', 4]], [['egrd', 8]], [['fds', 2]], [['dfs', 23]], [['wtr', 0]], [['reer', 1]]]

我正在尝试按每个元素中的数字对其进行排序,以使其变为:[[['dfs', 23]], [['egrd', 8]], [['t', 4]], [['fds', 2]]. [['test', 1]], [['reer', 1]], [['wtr', 0]]]

我尝试遍历数组,并根据其数字元素将元素添加到新数组中,如下所示:

for x in range(0, 4): # loop through mulitple times to make sure it is ordered

    for i in range(0, len(scores) - 1):

        try:

            if scores[i][0][1] > scores[i + 1][0][1]: # compare each element against the one in front of it
                top_scores.append(scores[i]) # append to the new array

        except IndexError:
            pass

它返回以下列表:[[['egrd', 8]], [['dfs', 23]], [['egrd', 8]], [['dfs', 23]], [['egrd', 8]], [['dfs', 23]], [['egrd', 8]], [['dfs', 23]]]

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

sorted与自定义key函数一起使用

sorted(scores, key=lambda x: x[0][1], reverse=True)

答案 1 :(得分:0)

您可以将lambda函数定义为键:

sorted(scores, key=lambda x: x[0][1], reverse=True)