python lambda表达式的介绍和使用
程序员文章站
2024-01-19 12:24:46
lambda
python 允许用 lambda 关键字创造匿名函数。匿名就意味着不需要显式的定义,比如python定义一个函数要以def开头,但是我们使用lambda不需要de...
lambda
python 允许用 lambda 关键字创造匿名函数。匿名就意味着不需要显式的定义,比如python定义一个函数要以def开头,但是我们使用lambda不需要def也能定义一个函数。
然而,作为函数,它们也能有参数。一个完整的 lambda“语句”代表了一个表达式,这个表达式的定义体必须和声明放在同一行。lambda函数的语法如下:
lambda [arg1[, arg2, … argN]]: expression
参数是可选的,如果使用的参数话,参数通常也是表达式的一部分。
lambda 表达式返回可调用的函数对象。
用合适的表达式调用一个 lambda 生成一个可以像其他函数一样使用的函数对象。它们可被传入给其他函数,用额外的引用别名化,作为容器对象以及作为可调用的对象被调用(如果需要的话,可以带参数)。当被调用的时候,如过给定相同的参数的话,这些对象会生成一个和相同表达式等价的结果。它们和那些返回等价表达式计算值相同的函数是不能区分的。
比如如下使用:
lambda :True
没有参数,返回一个TRUE
def add(x, y): return x + y ? lambda x, y: x + y
x,y是函数的参数,lambda建立了一个表达式,返回一个函数对象,参数是x,y
也可以这样:
add_ = add(x, y): return x + y ? lambda x, y: x + y
使用的时候,只要调用
c = add_(a, b)
就可以实现a+b的操作
同样的,在tensorflow中如果想定义一个简单的卷积操作,可以这样使用:
conv = lambda inputs, dim: tf.nn.conv2d(inputs, dim, [1, ksize_h,ksize_w, 1], padding=padding)
返回的是一个卷积函数对象,输入包含两个参数,接下来使用卷积的时候,直接调用
conv1 = conv(inputs, out_dim)
即可,这样就完成了一次简单的卷积运算,有些时候简直好用
上一篇: 用命令行开启无线共享
下一篇: 一串字符的解密
推荐阅读
-
python lambda表达式的介绍和使用
-
Python画五角星层叠图案和分形树——turtle包的使用
-
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
-
PHP中使用foreach和引用导致程序BUG的问题介绍_PHP教程
-
Python的lambda匿名函数的简单介绍
-
python的multiprocessing多进程通信的pipe和queue介绍
-
使用go和python递归删除.ds store文件的方法
-
Python3.x和Python2.x的区别介绍
-
JavaScript学习和使用之函数声明和函数表达式的区别
-
一个不错的PHP缓存类介绍和PHP缓存函数介绍以及使用_PHP教程