这篇文章给大家分享的是python的匿名函数及与结合内置函数使用的相关内容。对大家学习和理解python函数有一定的帮助,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编学习一下吧。
在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 + b x = news_add_old(5, 10) y = news_add(5, 10) # 调用匿名函数 print(x, y) # 15 15
结合内置函数使用:
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 s z = func(5, 10, lambda a, b: a + b) print(z) # 15
lambda
可以省去定义函数的过程,让代码更加精简,而且不用考虑命名问题,但是在PEP8
规范里面是不推荐用lambda
这种方式的。
关于python匿名函数的相关内容就介绍到这,有这方面学习需要的朋友可以了解看看,希望能对大家学习python匿名函数有帮助,想要了解更多大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。