知行编程网知行编程网  2022-12-11 12:30 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于学会Lambda,让程序Pythonic一点的相关知识,包括如何让程序隐藏起来,以及lambda Python这些编程知识,希望对大家有参考作用。

学习 Lambda,让程序更 Pythonic

Lambda 是 Python 中的高级用法。如果你想写出 Pythonic 的代码,你需要了解这些高级用法。要想说你是一个真正的Python程序员,首先得写代码

码写得Pythonic。

今天聊下Lambda的用法,写篇简短的用法说明。

Lambda 表示匿名函数。我们在程序中可能只会用到一些简单的功能一两次。在这种情况下,你不必将其编写为函数,而是使用

Lambda的写法,来让程序更简洁。

Lambda的写法原型是:

lambda 参数:操作(参数)

冒号左边是传入的参数,冒号右边是使用参数要做的操作。

比如

lambda x:x+1

上面的写法等同于如下写法,给参数加1,再返回:

def plus(x):
return x+1

比如

lambda x,y:x*y

上面的写法等同于:

def mul(x,y):
retuen x*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=lambda x:x[1], reverse=True)
>>>[[10, 20, 11], [8, 14, 3], [3, 9, 6]]

此嵌套列表按意外元素的第二个值降序排序。这个 lambda 表示返回元素的第二个值。它的写法等价于如下:

>>>def lis(x):
>>> return x[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=lambda x: 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=lambda x:int(x))
>>>'111'

这个写法等同于

def trsn(x):
return int(x)
max(nums, key=trsn)

如果lambda结合map , filter 等高阶Python语法,还有更多的用法。

如上使用lambda的好处是让代码更加简洁,这是程序员对代码的一种追求。缺点是程序不太好理解,不过只要了解了lambda的用法,也不是那么难懂。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享