如何按元素排序python列表?

2024-06-25 05:45:22 发布

您现在位置: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]]]

非常感谢您的帮助。你知道吗


Tags: tointest元素列表forrange数字
2条回答

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

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

可以将lambda函数定义为键,以便执行以下操作:

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

相关问题 更多 >