Python中Lambda的案例分析
这篇文章将为大家详细讲解有关Python中Lambda的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Lambda是Python里的高阶用法,要把代码写得Pythonic,就需要了解这些高阶用法,想说自己是一名真正的Python程序员,先要把代
码写得Pythonic。
今天聊下Lambda的用法,写篇简短的用法说明。
Lambda是匿名函数的意思,在程序中有些简单的函数我们可能只会使用一两次,这种情况下,你不必把它写成一个函数,而是用
Lambda的写法,来让程序更简洁。
Lambda的写法原型是:
lambda 参数:操作(参数)
冒号左边是传入的参数,冒号右边是使用参数要做的操作。
比如
lambdax:x+1
上面的写法等同于如下写法,给参数加1,再返回:
defplus(x):returnx+1
比如
lambdax,y:x*y
上面的写法等同于:
defmul(x,y):retuenx*y
举几个实际的例子:
1、比如对list排序,如下简单的list
nums = [3, 1, 7, 4, 8, 10]
对nums按降序排列,这个很简单是吧:
>>>nums=[3,1,7,4,8,10]>>>sorted(nums,reverse=True)>>>[10,8,7,4,3,1]
如果是对嵌套list排序呢?
比如:nums = [[10, 20, 11], [3, 9, 6], [8, 14, 3]]
我们想按每个元素里的第二个值降序排列
直接用上面sorted的写法就没法排序,这个时候用lambda就很方便:
>>>nums=[[10,20,11],[3,9,6],[8,14,3]]>>>sorted(nums,key=lambdax:x[1],reverse=True)>>>[[10,20,11],[8,14,3],[3,9,6]]
这个嵌套列表就按没想元素的第二个值降序排列好了,这个lambda的意思是返回元素的第二个值,它的写法等同于如下:
>>>deflis(x):>>>returnx[1]>>>sorted(nums,key=lis,reverse=True)>>>[[10,20,11],[8,14,3],[3,9,6]]
比较一下,用lambda写代码要简介很多。
2.再比如按字典的value进行降序排序
nums={'yuan':80,'ren':93,'xue':60}nums={'yuan':80,'ren':93,'xue':60}sorted(nums,key=lambdax:nums[x],reverse=True)
3.比如想取列表里的最大值
nums = [‘1’, ‘100’, ‘111’, ‘2’, 2, 2.57]
但是列表里还有字符串,没法直接比较大小,怎么做,用lambda来处理。
>>>nums=['1','100','111','2',2,2.57]>>>max(nums,key=lambdax:int(x))>>>'111'
这个写法等同于
deftrsn(x):returnint(x)max(nums,key=trsn)
如果lambda结合map , filter 等高阶Python语法,还有更多的用法。
如上用lambda的好处是,让代码更简洁,这是程序员对代码的一种追求。坏处就是让程序不太容易看懂,不过只要你搞清楚了lambda的用法,也没那么难懂。
关于Python中Lambda的案例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。