python3利用sort对多字段排序

  • 本文主要解多字段(存在主序和次序)的排序问题,由于python3的sort没有cmp参数,可能会突然不知所措
  • csdn还有通过将多字段组合成元组的方式来实现多字段排序,见本文,不过个人感觉可能没有本文中的方法直观
  • 主要原理是python的sort是稳定排序,所以可以先根据次要的序去排,再排主要的序,因为在排主序时若发生相等的情况,元素的顺序会保持在原先序列中的位序关系(也即维持了次要的序)
  • 示例代码如下
    arr = [(1,2,3), (1,2,1), (1,2,6), (1,3,1), (2,3,1)]
    # 比如排序的要求是先排元组的第0个元素(升序)
    # 第0元素相等时再排第1个元素(升序)
    # 第1个元素还相等时再排第2个元素(升序)
    arr.sort(key=lambda x:x[2])
    arr.sort(key=lambda x:x[1]) 
    arr.sort(key=lambda x:x[0])
    print(arr)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值