为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python中按升序对第一列进行排序,如果相同则在降序中对第二列进行排序?

如何在python中按升序对第一列进行排序,如果相同则在降序中对第二列进行排序?

温温酱 2021-07-20 16:50:41
我有一个清单[('a',2),('h',5),('c',3),('h',4)]。我想以每个元组的第一个条目按升序排列的方式对其进行排序。如果有重复,则根据 Python 中降序排列的第二个元组条目。我想得到这个:[('a',2),('c',3),('h',5),('h',4)]
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

由于元组中的第二个元素是数字(因此一元运算-符的有效操作数),您可以使用这个简单的键函数:


lst = [('a', 2), ('h', 5), ('c', 3), ('h', 4)]

sorted(lst, key=lambda x: (x[0], -x[1]))

# [('a', 2), ('c', 3), ('h', 5), ('h', 4)]


查看完整回答
反对 回复 2021-07-28
  • 1 回答
  • 0 关注
  • 574 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号