lambda函数 RUNOOB python练习题49

用来练手的python练习题,原题链接python练习实例49

该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结。

1. lambda函数的定义与调用

在python中,我们都知道使用def关键词来定义一个函数, 例如一个最简单的,返回值是他的参数的函数identity,如下所示:

def identity(x):return x

使用lambda可以只用一行就实现identity函数的定义:

ident = lambda x : x

调用如下:

print(ident(2))

输出结果如下:
在这里插入图片描述
lambda函数的定义非常简单,以上述函数为例,ident是函数的名字,lambda关键字后跟该lambda函数的参数,冒号后是该函数的返回值。调用lambda函数和调用普通函数一样,函数名 + 括号内参数。

此外,lambda函数也有自己的独有性质,即lambda函数可以使用立即调用的函数表达形式(IIFE)。我们可以在定义lambda函数的同时进行调用,此时lambda函数也不再需要一个用于调用的函数名了:

print((lambda x : x+1)(2))

输出结果如下:
在这里插入图片描述

2. lambda函数在高阶函数中的应用

lambda函数因为其简单的定义方式,在很多高阶函数的定义中会被使用。tips: 高阶函数即,函数存在至少一个参数是函数且该函数的返回值是一个函数。

举例如下:

high_ord_func = lambda x, func: x + func(x)print(high_ord_func(2, lambda x: x * x))

输出结果如下:
在这里插入图片描述
这个高阶函数还可以写成:

def high_ord_func(x,func):return x + func(x)a = high_ord_func(2,lambda x: x+2)
print(a)

输出结果同样也是6。

高阶函数可以类比C++中的模板函数。当我们定义函数high_ord_func=lambdax,func:x+func(x)high\_ord\_func = lambda x, func: x + func(x)high_ord_func=lambdax,func:x+func(x) 时,可以理解为我们定义了一类函数模板,这类模板函数都有两个参数,变量x以及一个函数func(x),返回值为x+func(x)。当我们要使用函数时,需要将这些函数模板实例化,同样是给未初始化的参数赋值。

3. lambda函数使用的语法注意点

lambda函数作为一种单行的python函数定义方式,相比传统的def定义函数,更加简洁优雅,但同时lambda函数也有自身的局限性。
首先当我们使用def定义普通函数时,可以对参数类型进行注释。但是当使用lambda定义时,就不再能使用类型注释了。

def plusplus(a: int, b: int)->int:return a+b

而且使用lambda定义函数时,不能加入例如return, assert, pass, raise等声明,否则会导致syntax error。

\newline
\newline
\newline
\newline
参考文章: How to Use Python Lambda Functions

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes(k8s)安装部署

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主…

python random随机数 RUNOOB python练习题50

用来练手的python练习题,原题链接: python练习实例50、 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数。 1. 生成浮点型随机小数 最简单的,就是用random函数,生成 [0.0,1.0)[0.0, 1.0)[0.0,1.0)范围…

Spring Cloud Eureka Consul使用和对比

Spring Cloud简介 最大的区别是Eureka保证AP, Consul为CP。 Consul强一致性(C)带来的是: 服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功 Leader挂掉时,重新选举期间整个consul不可用。保证了强一致…

符号 RUNOOB python练习题 51

用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同。 1. 对于数字变量,&\&& 和 ∣|∣ 用于逐位运算 # 二进制逐位逻辑与门运算 a 0b110…

Python打印杨辉三角形 RUNOOB python练习题61

用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 实现代码如下: import numpy as nptable…

使用Docker快速搭建Tensorflow开发环境

当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow、pytorch来实现自己的想法,但依然会面临各种包版本和依赖的问题,有一段时…

RUNOOB python 67 数组的元素互换

用来练手的Python练习题,原题链接:python练习实例67 题干: 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组 代码如下: import numpy as nptable np.array([10,4,9,3,11,25,37,15,2,231,672,22]) #定义sw…

微信小程序、微信公众号、H5之间相互跳转

一、小程序和公众号 答案是:可以相互关联。 在微信公众号里可以添加小程序。 图片有点小,我把文字打出来吧: 可关联已有的小程序或快速创建小程序。已关联的小程序可被使用在自定义菜单和模版消息等场景中。 公众号可关联同主体的10个小程…

数组元素前移后移 RUNOOB python练习题 68

用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import numpy as np # 构造一个储存了n个整数的numpy数组 def numbers_input(n):a n…

Mac Eclipse安装lombok

Lombok是一个可以通过注解的形式可以帮助消除一些必须但是显得很臃肿的Java代码的工具,通过使用对应的注解,可以在进行编译源码的时候生成对应的方法,比如类属性的get/set/toString()/类的构造方法等. 下面记录一下在Mac Eclipse是如何安装Lo…

tf.reduce_sum()方法深度解析

首先看一下reduce_sum及其参数的注释 : def tf.reduce_sum(input_tensor, axisNone, keepdimsFalse, nameNone) Computes the sum of elements across dimensions of a tensor. Reduces input_tensor along the dimensions given in axis. Unless keepdims is true, the rank o…

主成分分析(PCA)原理详解_转载

一、PCA简介 1. 相关背景 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,…

Mac cnpm装包时提示Error: EACCES: permission denied解决办法

Cnpm装包时提示Error: EACCES: permission denied解决办法 2018年03月04日 09:31:51 miniminixu 阅读数:1598 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/miniminixu/article/details/79434609 只需在cnpm …

特征点检测 FAST算法及代码详解

本文着重介绍了用于图像特征点检测的算法,FAST算法,以及使用matlab的实现。 FAST算法是一种拐点检测算法,其主要应用于提取图像中的特征点,在动态成像的一系列图像中追踪定位对象。众所周知,我们生活的世界是动态化的…

一文看懂计算机神经网络与梯度下降

1. 计算机神经网络与神经元 要理解神经网络中的梯度下降算法,首先我们必须清楚神经元的定义。如下图所示,每一个神经元可以由关系式yf(∑i1nwixib)y f(\sum_{i1}^nw_ix_i b)yf(∑i1n​wi​xi​b)来描述,其中X[x1,x2,...,xn]X [x_1,x_2,..…

vs2015web项目无法加载64位c++的dll,提示试图加载不正确的格式

vs2015无法加载64位c的dll,提示试图加载不正确的格式! 开始用winform引用64位的c的dll,在项目的属性设置生成里面选择any cpu或者x64都可以成功! 但在web项目和接口里面运行就提示试图加载不正确的格式,想办法找了一天也没处理掉&…

使用Rancher搭建K8S测试环境

环境准备(4台主机,Ubuntu16.04Docker1.12.6 SSH): rancher1 192.168.3.160 只做管理节点 node1 192.168.3.161 K8S的节点1 node2 192.168.3.162 K8S的节点2 node3 192.168.3.163 K8S的节点3 此时如…

Anaconda安装tensorflow报错问题解决方法

最近脱离了googlecolab想使用本地的anaconda进行机器学习课题的演练,在安装tensorflow时报错 : UnsatisfiableError: The following specifications were found。下面给出解决方法。 发现实际原因是由于anaconda的python环境,当前版本的tensorflow只能适…

yml的mybatis的sql查看

yml的mybatis的sql查看 控制台输出结果: