Python: is there a way to sort a list from higher to lower
我在python中有以下代码:
1 2 3 4 5
| results = {}
....
results = sorted([(v, k) for (k, v) in results.items()])
....
return results[:limit] |
results包含按这种方式排序的距离,较小的距离在列表的顶部。
有没有一种方法可以这样对这个列表进行排序:更高的距离在results的顶部?或者,如果我们不颠倒这些项目,就有办法得到results的最后一个项目,而不是使用return results[:limit]得到最高的结果。
- 您可能需要reverse=True或/和heapq模块
- 你只关心排名靠前(或靠后)的项目吗?如果是这样,您应该研究使用heaps(与heapq库一起使用)。
- 有必要改变results的结构吗?如果没有,可以使用sorted的key=参数来完成相同的操作:results = sorted(results.items(), key=lambda n: n[1], reverse=False)。
在sorted函数中使用可选的reverse参数:
1
| results= sorted([(v, k) for (k, v) in results.items()], reverse=True) |
- 如果这是答案,那么这是一个超级经典的副本,你应该避免回答
- 如果你能找到合适的副本,请链接它,而不是告诉其他人这样做。
- 请不要那样做。我们现在还不确定这是不是一个副本。只是不清楚。
- 非常感谢您的回答:)
要回答您提出的第二个问题,因为@ruzihm已经回答了第一个问题,您可以通过以下方式获得results的最后一项: