您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

按第二个值,reverse = True,然后按键,reverse = False,对元组列表进行排序

按第二个值,reverse = True,然后按键,reverse = False,对元组列表进行排序

以下内容适用于您的输入:

d = [('B', 3), ('A', 2), ('A', 1), ('I', 1), ('J', 1)]
sorted(d,key=lambda x:(-x[1],x[0]))

由于您的“值”是数字,因此您可以通过更改符号轻松地反转排序顺序。

换句话说,这种排序按值(-x[1])进行排序(负号先放置大数字),然后对相同的数字按键(x[0])进行排序。

如果不能轻易地“否定”您的价值观以将大项目放在首位,那么一个简单的解决方法是将两次排序:

from operator import itemgetter
d.sort(key=itemgetter(0))
d.sort(key=itemgetter(1),reverse=True)

之所以有效,是因为python的排序是稳定的。

其他 2022/1/1 18:28:16 有489人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶