详解python中的lambda与sorted函数
lambda表达式
python中形如:
lambdaparameters:expression
称为lambda表达式,用于创建匿名函数,该表达式会产生一个函数对象。
该对象的行为类似于用以下方式定义的函数:
def(parameters): returnexpression
python中的lambda函数可以接受任意数量的参数,但只能有一个表达式。也就是说,lambda表达式适用于表示内部仅包含1行表达式的函数。那么lambda表达式的优势就很明显了:
- 使用lambda表达式可以省去单行函数的定义过程,使代码更加简洁;
- 适用于不需要多次复用的函数
例:
y=lambdax:x*x print(y(3)) >9
fx=lambdax,y,z:x+y+z print(fx(3,4,5)) >12
sorted()
python3.x中sorted函数:
sorted(iterable,*,key=None,reverse=False)
sorted函数会根据iterable中的项返回一个新的已排序列表。
其中key与reverse是两个可选参数,它们都必须指定为关键字参数;
key:指定带有单个参数的函数,用于从iterable的每个元素中提取用于比较的键,默认为None,即直接比较元素;
reverse:为一个布尔值,用来指定排序规则,默认为False(升序)。
python2的sorted函数中还有一个参数cmp,python3的sorted中已经没有这个参数了。
与list.sort()方法不同的是,sorted()是有返回值的,而list.sort()的返回值为None;并且list.sort()只能对list进行排序,而sorted()可以接收任何的iterable
例:
#list foo=[5,7,2,9,1] bzz=sorted(foo) print(bzz) #>[1,2,5,7,9] print(sorted(foo)) #>[1,2,5,7,9] print(sorted(foo,reverse=True)) #>[9,7,5,2,1] print(sorted(foo,key=lambdax:x*-1)) #>[9,7,5,2,1] #dict bar={'java':14,'c':16,'python':9,'cpp':6,'csharp':4} print(sorted(bar)) #>['c','cpp','csharp','java','python'] print(sorted(bar.items(),key=lambdakv:kv[1],reverse=True)) #>[('c',16),('java',14),('python',9),('cpp',6),('csharp',4)]
以上就是详解python中的lambda与sorted函数的详细内容,更多关于pythonlambda与sorted函数的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。