lambda表达式在sort中的使用(python3)

一、lambda表达式一般用法

lambda argument: manipulate(argument)

Example:

add = lambda x, y: x + y

print(add(3, 5))

# Output: 8

二、 lambda表达式在sort中的使用

1、sort基本用法

  • sort()函数用来对list数据类型进行排序。reverse为True时,从大到小进行排序;默认为False,从小到大进行排序。
  • sort函数在原list进行排序,sorted函数返回一个新的list。
  1. 先创建一个列表a。                                                                                                                                                    

    a=[6,1,2,3,4,5]
  2. 直接使用sorted方法,返回一个列表就是排序好的                                                                                                                    

    sorted(a)
    运行结果为:
    [1, 2, 3, 4, 5, 6]       
    

    区别:sort()属于永久性排列,直接改变该list; sorted属于暂时性排列,会产生一个新的序列。

    b=a.sort(reverse=False)
    print(b) #结果为None
    print(a) #为排序后的a
    print(a.sort())#结果为None                                                        
  3. 假如a是一个由元组构成的列表,我们需要用到参数key,即关键词。

    (1)如按照绝对值大小进行排序:

    >>> sorted([8,3,8,11,-9],key=abs)
    [3, 8, 8, -9, 11]

    (2)key指定的函数将作用于list中的每一个元素上,根据key函数返回的结果进行排序。

    >>> sorted(['abc','Abc','Cba','bAc'])
    结果:['Abc', 'Cba', 'abc', 'bAc']

    默认的,对于字符串,sorted函数按照ASCII的大小进行排序,因为C<a,大写的C会排在小写的a前面。

    (3)如果我们想要达到忽略大小写的排序,只需要更改一下key函数

          >>> sorted(['abc','Abc','Cba','bAc'],key=str.lower)

         结果:['abc', 'Abc', 'bAc', 'Cba']                                                          

    (4)结合lamda排序 

 lambda是一个隐函数,是固定写法;x表示列表中的一个元素,表示一个元组(x只是临时起的一个名字,你可以使用任意的名字);x[0]表示元组里的第一个元素,当然第二个元素就是x[1];则key=lambda x: x[0]的意思就是按照列表中第一个元素排序 。

a = [(1, 2), (4, 1), (3, 10), (13, -3)]

a.sort(key=lambda x: x[0])

print(a)

按照第二个元素排序的示例如下:                                                                                               

        a = [(1, 2), (4, 1), (9, 10), (13, -3)]

a.sort(key=lambda x: x[1])

print(a)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值