我有一个名为分数的列表:[[['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]]]
非常感谢您的帮助。
答案 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)