当前位置: 首页 > 图灵资讯 > 行业资讯> 学会Lambda,让程序Pythonic一点

学会Lambda,让程序Pythonic一点

发布时间:2025-03-18 18:15:06

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进行排序,如下简单的listnums = [3, 1, 7, 4, 8, 10]按降序排列nums很简单,对吧?

>>>nums=[3,1,7,4,8,10]>>>sorted(nums,reverse=True)>>>[10,8,7,4,3

对嵌套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与mapp相结合 , filter 等高级Python语法有更多的用法。

使用lambda的优点是使代码更简单,这是程序员对代码的追求。缺点是程序不容易理解,但只要你理解lambda的用法,就不会那么难理解。

相关文章

如何让vim支持python3

如何让vim支持python3

2025-09-12
python2.7和3.6区别有哪些

python2.7和3.6区别有哪些

2025-09-12
python3有serial库吗

python3有serial库吗

2025-09-12
python中w、r表示什么意思

python中w、r表示什么意思

2025-09-12
python中如何把list变成字符串

python中如何把list变成字符串

2025-09-12
python命名空间是什么

python命名空间是什么

2025-09-12