目前,我有一个名为result
的列表列表,其中包含这样的值,例如:
result[1] = [John, 0.32]
result[2] = [Mikey, 1.90]
result[3] = [Sarah, 1.31]
result[4] = [Nancy, 0.49]
result[5] = [Billy, 0.13]
但是,我想按照索引空间[1]中保存的数字的降序对其进行排序。因此系统将按该顺序返回值。我是否只需要使用sorted()
函数并调用保存值的索引?我不需要求助于列表是否有必要,我只需要按降序输出值。
我该怎么做呢?
答案 0 :(得分:5)
使用sorted
功能中的key
参数。
sorted(result, key = lambda x:x[1], reverse = True)
reverse = True
确保项目按降序排序。这里需要注意的重要事项是key
参数。
key = lambda x:x[1]
我们将lambda函数传递给key
参数,该参数接受一个参数。 sorted
从result
中选取每个元素并将其传递给key
函数。在我们的例子中,它是元组。 key
函数返回元组中的第二项。因此,在排序时,元组中的第二项将用作元组本身的值。这意味着当我们进行comapre [John, 0.32]
和[Mikey, 1.90]
时,我们实际上只会比较0.32
和1.90
。
sorted
不会更改实际列表,但会创建新的排序列表。但是,如果您想对列表本身进行排序,那么您可以使用list.sort
方法,就像这样
result.sort(key = lambda x:x[1], reverse = True)
答案 1 :(得分:0)
您可以使用sorted
:
new_list = sorted(old_list, key=lambda x: x[1], reverse=True)
或使用sort
:
old_list.sort(key=lambda x: x[1], reverse=True)