python使用lambda表达式对二维列表排序

很多时候需要对二维列表的第一个元素或者是第二个元素按照升序或者降序的规则排序,python提供了lambda表达式方便我们自定义排序的规则,可以直接调用列表的sort方法(sort方法会修改当前的列表)进行排序或者直接使用sorted方法(sorted方法不会修改当前的列表)对列表进行排序,下面是具体的例子,可以使用python中的lambda表达式对其排序,在排序的时候需要写上:key=lambda x : ,x表示的是变量,也可以写成另外的变量,冒号后面跟着排序的参数,当一个参数的时候表示先对当前的参数进行排序,例如x[0]表示第一列的元素,x[1]表示第二列的元素...以此类推,当有两个参数的时候表示先对第一个参数排序,当第一个参数相同的时候按照第二个参数进行排序,当一行中超过两个元素的时候也是类似的

if __name__ == '__main__':
    li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
    # 先对第一个参数排序
    li.sort(key=lambda x: x[0])
    print(li)

    # 先对第二个参数排序
    li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
    li.sort(key=lambda x: x[1])
    print(li)

    li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
    sorted(li, key=lambda x: x[0])
    print(li)

    # 当存在两个参数的时候表示先对哪一个参数进行排序, 当第一个参数相同的时候按照第二个参数对其排序
    li = [[4, 3], [4, 2], [-3, 1], [5, 6]]
    li.sort(key=lambda x: (x[0], x[1]))
    print(li)

    # 当每一行超过两个元素的时候也是类似的我们可以规定按照哪一列进行排序
    li = [[1, 2, 3], [2, 3, 4], [3, 1, -1], [4, 6, 9]]
    li.sort(key=lambda x: x[2])
    print(li)

  

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值