举例讲解Python的lambda语句声明匿名函数的用法
作者:cangmean 发布时间:2021-05-29 13:02:53
标签:Python,lambda
所谓匿名函数,即是不需要定义函数,像表达式一样使用,不需要函数名(很多时候名字让我很困扰),一些简单的函数简单化, 举个例子
我需要两个整数相加的函数,通常是这么定义的
def add(x, y):
return x + y
很好的完成了我需要的功能, 但是我现在需要一个数字与字符串相加的函数
def addstr(x, y):
return x + str(y)
又一次完成了我的需求,但是 我突然需要两个整数相减,相除的功能这样函数就得 一直写下去, 但是使用lambda 匿名函数可以直接使用
# 相加的实现
f = lambda x, y: x + y
f_str = lambda x, y: x + str(y)
简化了操作 让函数更简单,但有个缺点就是 可维护性差, 当需要功能复杂时不建议使用
lambda语句的目的是由于性能的原因,在调用时绕过函数的栈分配。其语法是:
lambda [arg1[, arg2, ... argN]]: expression
下面举例来说明lambda语句的使用方法(无参数)。
Python匿名函数lambda举例(无参数)Python
# 使用def定义函数的方法
def true():
return True
#等价的lambda表达式
>>> lambda :True
<function <lambda> at 0x0000000001E42518>
# 保留lambda对象到变量中,以便随时调用
>>> true = lambda :True
>>> true()
True
# 使用def定义函数的方法
def true():
return True
#等价的lambda表达式
>>> lambda :True
<function <lambda> at 0x0000000001E42518>
# 保留lambda对象到变量中,以便随时调用
>>> true = lambda :True
>>> true()
True
下面再举一个带参数的例子。
Python匿名函数lambda举例(含参数)Python
# 使用def定义的函数
def add( x, y ):
return x + y
# 使用lambda的表达式
lambda x, y: x + y
# lambda也允许有默认值和使用变长参数
lambda x, y = 2: x + y
lambda *z: z
# 调用lambda函数
>>> a = lambda x, y: x + y
>>> a( 1, 3 )
4
>>> b = lambda x, y = 2: x + y
>>> b( 1 )
3
>>> b( 1, 3 )
4
>>> c = lambda *z: z
>>> c( 10, 'test')
(10, 'test')
# 使用def定义的函数
def add( x, y ):
return x + y
# 使用lambda的表达式
lambda x, y: x + y
# lambda也允许有默认值和使用变长参数
lambda x, y = 2: x + y
lambda *z: z
# 调用lambda函数
>>> a = lambda x, y: x + y
>>> a( 1, 3 )
4
>>> b = lambda x, y = 2: x + y
>>> b( 1 )
3
>>> b( 1, 3 )
4
>>> c = lambda *z: z
>>> c( 10, 'test')
(10, 'test')
是不是看起来代码更简洁,又不失可读性。
0
投稿
猜你喜欢
- 或许现在关心交互设计的设计师们大部分来自于了互联网行业,所以我们看到当你搜索“交互设计”时更多的BLOG和文章是在谈论互联网,网站的导航,注
- 给出列表切片的格式:[开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同)[开头元素:结尾元素(不含):步长]
- 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特
- var long2="1988-0w-07";alert(long2.substring(0,4)+"----
- 当使用pytorch写网络结构的时候,本人发现在卷积层与第一个全连接层的全连接层的input_features不知道该写多少?一开始本人的做
- 首先对空格宽度的定义:空格,由于每个浏览器处理会有微小的不同,在这里我将可以选中的宽度作为空格的宽度。视觉宽度和可选中的宽度有 0~3px
- 通过第三方BeautifulSoup库来爬取op.gg网页静态数据主要思路op.gg网站网站以出场率高低排名,并且列出对位胜率,在高出场率的
- 窗外下着小雨,作为单身程序员的我逛着逛着发现一篇好东西,来自知乎 你都用 Python 来做什么?的第一个高亮答案。到上面去看了看,地址都是
- 这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。帮助蹲厕族、YP族、饭圈女孩在
- 1.多态是指传入不同的对象,产生不同的结果多态指的是一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承)定义:多态是一种使用
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- 这篇文章主要介绍了Python list运算操作代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- Ajax(Asynchronous Javascript And XML)翻译成英文就是“异步Javascript和XML”。即用Javas
- 在写ASP网页时常用的检测代码:服务器现在时间:<% =now %>服务器CPU型号:<%=Request.ServerV
- 通配符是一些特殊符号,主要有星号(*)和问号(?),用来模糊搜索文件,“*”可以匹配任意个数个符号, “?”可以匹配单个字符。当查找文件夹时
- 看到这篇文章的人,如果我没有估计错的话,八成是从事互联网的人,其中又有八成是做设计的。如果真是这样,可以一起庆幸一下。首先,庆幸从事着一个没
- 引言最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器
- 别人复制你网站的文章时自动加上注释,这个功能你在很多网站应该都有体会过,当我们复制一段内容时,就自动在文章后面加上了网站的一些
- 本文主要跟大家介绍了Golang巧用defer进行错误处理的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:问题引入毫无疑问,错误处
- 我们有理由相信采用新的内核版本(2.2.16-3 smp)也应该有性能的提升: OS2: Newer minor version kerne