这篇教程Python匿名函数详情写得很实用,希望能帮到您。
1、匿名函数在python 中,除了一般使用def 定义的函数外,还有一种使用lambda定义的匿名函数。这种函数可以用在任何普通函数可以使用的地方,但在定义时被严格限定为单一表达式。从语义上讲,它只是普通函数的语法糖。 如果我们需要定义一个特别简单的函数,例如 def add(a, b): s = a + b return s 这就出现问题了,这么优雅的Python 怎么可以出现这种难看的代码呢,有没有办法可以将其简化为1行代码呢?这么优雅的Python 肯定有办法将其简化的方法啊!这要用到匿名函数了。 python 中使用 **lambda **关键字来创建匿名函数。
语法格式: lambda [参数1 [,参数2,..参数n]]:表达式
lambda 参数列表:return [表达式] 变量
由于lambda 返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收 示例代码如下: news_add = lambda a, b: a + b# 上面的那个等于def news_add_old(a, b): return a + bx = news_add_old(5, 10)y = news_add(5, 10) # 调用匿名函数print(x, y) # 15 15
2、内置函数使用结合内置函数使用: list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]# 那个列表中的a最大max_value = max(list1, key=lambda x: x["a"])print(max_value)# 如果用普通的函数写就多了几行def func(di): return di["a"]max_value = max(list1, key=func) # 这里不能加()不然就表示调用了print(max_value) 将匿名函数当做参数: def func(a, b, fun): s = fun(a, b) return sz = func(5, 10, lambda a, b: a + b)print(z) # 15 lambda 可以省去定义函数的过程,让代码更加精简,而且不用考虑命名问题,但是在PEP8 规范里面是不推荐用lambda 这种方式的。
到此这篇关于Python匿名函数详情的文章就介绍到这了,更多相关Python匿名函数内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! 支持PyTorch的einops张量操作神器用法示例详解 python的rllib库你了解吗 |