当前位置: 首页 > 编程日记 > 正文

Python3中lambda表达式介绍

Python3中的lambda表达式或lambda函数是匿名函数(anonymous function),意味着该函数没有名称。def关键字用于在Python3中创建一个普通函数,类似地,lambda关键字用于在Python3中创建匿名函数。

Python3 lambda函数语法:

lambda parameters: expression

未命名对象的行为类似于定义了以下内容的函数对象:

def <lambda>(parameters):return expression

(1).lambda函数可以有任意数量的参数,但只能有一个表达式,它被评估和返回。它在语法上仅限于单个表达式。从语义上讲,它只是普通函数定义的语法糖(syntactic sugar)。

(2).在任何需要函数对象的地方都可以自由使用lambda函数。

(3).lambda函数拥有自己的命名空间,不能访问自己参数列表之外或全局命名空间里的变量。

(4).与嵌套函数定义一样,lambda函数可以从包含的作用域中引用变量。

(5).可以将lambda函数作为参数传递给其它函数。

以下为测试代码:

var = 2
if var == 1:# reference: https://docs.python.org/3/tutorial/controlflow.html# 与嵌套函数定义一样,lambda函数可以从包含的作用域中引用变量def make_incrementor(n):# 使用一个lambda表达式来返回一个函数return lambda x: x + nf = make_incrementor(42)print(f(0)) # 42print(f(1)) # 43def mul():# 可以有任意数量的参数,但只能有一个表达式return lambda x, y: x * yf2 = mul()print(f2(5, 6)) # 30# 传递一个小函数作为参数pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]pairs.sort(key=lambda pair: pair[1])print(pairs) # [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
elif var == 2:# reference: https://www.geeksforgeeks.org/python-lambda-anonymous-functions-filter-map-reduce/def cube(y):return y*y*y# lambda定义不包含"return"语句,它始终包含返回的表达式lambda_cube = lambda y: y*y*yprint(cube(5)) # 125print(lambda_cube(5)) # 125# Python Lambda Function with List Comprehensiontables = [lambda x=x: x*10 for x in range(1, 11)]for table in tables:print(table(), end=",") # 10,20,30,40,50,60,70,80,90,100,print()# Python Lambda Function with if-elseMax = lambda a, b : a if(a > b) else bprint(Max(1, 2)) # 2# lambda函数不允许多个语句,但是,我们可以创建两个lambda函数,然后调用另一个lambda函数作为第一个函数的参数List = [[4, 3, 2], [1, 16, 4, 64], [6, 3, 12, 9]]# Sort each sublistsortList = lambda x: (sorted(i) for i in x) # 升序排序# Get the second largest elementsecondLargest = lambda x, f : [y[len(y)-2] for y in f(x)] # 返回list中的第n-2个元素,其中n为list的长度res = secondLargest(List, sortList)print(res) # [3, 16, 9]ages = [13, 90, 17, 59, 21, 60, 5]adults = list(filter(lambda age: age>18, ages)) # filter函数接受一个函数和一个列表作为参数print(adults) # [90, 59, 21, 60]animals = ['dog', 'cat', 'parrot', 'rabbit']uppered_animals = list(map(lambda animal: str.upper(animal), animals)) # map函数接受一个函数和一个列表作为参数print(uppered_animals) # ['DOG', 'CAT', 'PARROT', 'RABBIT']print("test finish")

GitHub:https://github.com/fengbingchun/Python_Test

相关文章:

6大理由,告诉你为什么这个大会你不能错过! | 文末有福利

作者 | Carol出品 | 区块链大本营&#xff08;blockchain_camp&#xff09;* 文末可参与活动赢赠票&#xff01;如果说有一个什么领域&#xff0c;能让中科院、华为、腾讯、京东、360、微众银行的大咖汇聚在一起&#xff0c;那一定是——区块链。悄咪咪地给大家剧透一下&#x…

魔与道的反复较量 反垃圾邮件技术

反垃圾邮件武器库不同的反垃圾邮件产品采用的技术有所不同&#xff0c;但总体来说&#xff0c;不外乎以下几种技术&#xff0c;其中&#xff0c;针对垃圾邮件的核心技术有贝叶斯智能分析、垃圾邮件评分、垃圾邮件指纹识别。转载于:https://blog.51cto.com/aonlin/17074

在Centos 7下编译openwrt+njit-client

首先要有一个centos7 step1:更新系统的源&#xff1a; yum install update 但是发现官方的源好像被墙了&#xff0c;于是自己又去换源&#xff0c;找163的源换。具体的操作最后的链接。 可是换完源之后发现163的源只支持到centos6、、、、、、但是就泪崩了。于是又把源换了回来…

Python3中内置函数callable介绍

Python3中的内置函数callable接受一个对象参数&#xff0c;如果此对象参数看起来可调用&#xff0c;则callable函数返回True&#xff0c;否则返回False。如果返回True&#xff0c;则调用仍有可能失败&#xff1b;但如果返回False&#xff0c;则调用对象将永远不会成功。 类是可…

户外广告新创意

近来&#xff0c;各大城市纷纷加大了对户外广告的监管力度&#xff0c;部分城市甚至停止审批户外广告牌。这让户外广告运营者和广告发布商甚为头疼。 长期以来&#xff0c;户外广告牌扮演着截然相反的“双重角色”&#xff0c;在户外广告运营者和广告发布商眼中&#xff0c;“寸…

百度重新定义「智能屏」,瞄准10后

加入「公开课」交流群&#xff0c;获取更多学习资料、课程及热招岗位等信息记者 | 阿司匹林作为中国智能音箱主力推手中的一员&#xff0c;百度从 2017 年已经开始布局。根据数据机构Strategy Analytics发布智能音箱市场报告&#xff0c;2019年第三季度&#xff0c;百度旗下人工…

jQuery最简单的表单提交方式

第一步&#xff1a;绑定事件 常用的与ajax相关的事件参考如下&#xff1a; &#xff11;、$(selector).click(function) &#xff12;、$(selector).change(function) &#xff13;、$(selector).keyup(function) &#xff14;、$(selector).submit(function) 提交表单前&#…

Python3中typing模块介绍

typing.py的源码在&#xff1a;https://github.com/python/cpython/blob/main/Lib/typing.py。此模块为类型提示(Type Hints)提供运行时支持(This module provides runtime support for type hints)。从python 3.5版本开始将Typing作为标准库引入。 python3中增加了Function An…

显示所有文件和文件夹无论如何 无法被设置

问题&#xff1a;XP系统选显示所有文件和文件夹确定后没有任何反应再次打开文件夹选项里面仍是不显示隐藏的文件和文件夹 答案&#xff1a;在记事本粘贴下面文字&#xff0c;另存为所有文件&#xff0c; .reg 格式。成功的话图标变为绿色碎方块。在双击它。 Windows Registry E…

工作5年后才明白的道理:不起眼的技能中,藏着你的未来

编程圈儿一直都流传着一个调侃的段子&#xff1a;一流程序员靠数学二流靠算法三流靠逻辑四流靠SDK五流靠Google和StackOverFlow六流靠百度和自己琢磨低端的看高端的就是黑魔法&#xff01;从过来人的角度看&#xff0c;这不仅仅是个段子&#xff0c;而是目前程序员的真实写照。…

Transform-style和Perspective属性

在《CSS3 Transform——transform-origin》一文中主要介绍了CSS3 Transform属性中的transform-origin属性的使用&#xff0c;其实在transform属性中&#xff0c;transform-origin属性仅是其中之一&#xff0c;要彻底理解transform属性&#xff0c;这是不够的&#xff0c;必须的…

Python3中__call__方法介绍

如果Python3类中有__call__方法&#xff0c;那么此类实例的行为类似于函数并且可以像函数一样被调用。当实例作为函数被调用时&#xff0c;如果定义了此方法&#xff0c;则x(arg1, arg2, …)是x.__call__(arg1, arg2, …)的简写。 为了将一个类实例当作函数调用&#xff0c;我们…

切尔西携手YouTube 英超第一家共享视频球队诞生

英格兰超级足球联赛冠军球队切尔西日前表示,已经与互联网视频服务网站YouTube签订了合作协议,未来将通过YouTube发布每日新闻和视频内容,从而也成为英超首支在线视频服务的球队. 据路透社报道,根据协议的内容,切尔西将建立一个YouTube旗下的品牌网站,其中将发布每日更新内容,当…

商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题

加入「公开课」交流群&#xff0c;获取更多学习资料、课程及热招岗位等信息编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】今年的ICCV&#xff0c;商汤科技及联合实验室共有57篇论文入选ICCV 2019&#xff08;包含11篇Oral&#xff0…

(链表)反转链表Reverse List

逆转链表是简单而又简单的链表问题,其问题的方法之一可以设置三个指针,一个指向当前结点,一个指向前驱结点,一个指向后继指针 代码如下: class Solution { public:ListNode* ReverseList(ListNode* pHead) { // if(pHeadNULL || pHead->nextNULL) // return pH…

很长时间没有来了

好长时间没有来自己的博客了,更新的速度实在是太慢了,自己已经找了一份新的工作,给自己一个好的环境吧,有时间可以去学习更多的网络知识了.学习万岁!加一下,博友:思念狗的骨头:[url]http://starger.blog.51cto.com/ [/url] 他的文章还是比较不错的!转载于:https://blog.51cto.c…

十年磨一剑,可重构计算架构将引领未来芯片市场

2019 年 6 月&#xff0c;AI 芯片创业公司清微智能首款可重构计算架构 AI 芯片实现量产的消息在业内迅速传开&#xff0c;可重构计算架构芯片再次引发一波讨论的热潮。经历过十多年的技术积累&#xff0c;这枚小小的芯片在全球芯片市场中开启了全新的篇章。时光倒流&#xff0c…

PyTorch中nn.Module类中__call__方法介绍

在PyTorch源码的torch/nn/modules/module.py文件中&#xff0c;有一条__call__语句和一条forward语句&#xff0c;如下&#xff1a; __call__ : Callable[…, Any] _call_impl forward: Callable[…, Any] _forward_unimplemented 在PyTorch中nn.Module类是所有神经网络模块…

压缩和归档及vi的使用

1.cat&#xff08;more less head tail&#xff09; /etc/passwd &#xff1a;查看/etc/passwd文件内容2.head -13 /etc/passwd | tail -1 :只查看/etc/passwd文件中第13行3.wc -l /etc/passwd :统计/etc/passwd文件有多少行4.grep -v "^#" /etc/inittab | grep -v &…

看到抖音上Python工程师晒得工资条,我沉默了......

我是个抖音中毒者闲来无事就喜欢刷抖音最近刷到了一个Python工程师的工资条然后我默默的打开看了然后我默默的关闭了我想这个工资算下来好像也不算高我就去其他渠道搜索了一下相关的Python工作岗位的工资好吧&#xff0c;都是比这个工资更高的emmm.....此时我很沉默后悔为什么我…

windows上通过cmake-gui生成pytorch工程

在Windows下通过cmake-gui.exe生成不带cuda的Torch.sln工程操作步骤&#xff1a;PyTorch版本使用1.8.1。首先可以先通过打开cmake-gui.exe&#xff0c;指定pytorch源代码目录和生成vs2017工程的位置&#xff1b;然后点击Configure&#xff0c;选中”Visual Studio 15 2017 Win6…

RequisitePro SQL SERVER数据库的配置

安装好Rational RequisitePro后&#xff0c;新建立一个project时&#xff0c;要选择库的类型&#xff0c;可以支持MS Access、SQL SERVER和oralce首先在SQL SERVER里新建一数据库名为”RequisitePro”然后在查询分析器里执行其自带的脚本文件&#xff0c;位置在《Rational安装目…

yum三种方法

RHEL5中实现各种服务的准备条件&#xff1a;(一)、制作YUM本地源&#xff1a;YUM简介&#xff1a;YUM是Yellow dog Updater Modified的简称&#xff0c;yum是软件的仓库&#xff0c;它可以是http或ftp站点&#xff0c;也可以是本地软件池&#xff0c;但必须包含rpm的header&…

损失函数之Cross-Entropy介绍及C++实现

在深度学习中&#xff0c;损失函数用来评估模型的预测值与真实值之间的差异程度&#xff0c;是模型对数据拟合程度的反映&#xff0c;拟合的越差&#xff0c;损失函数的值越大&#xff1b;反之&#xff0c;损失函数越小&#xff0c;说明模型的预测值就越接近真实值&#xff0c;…

C语言应用于LR中-如何得到数组长度

C语言没有提供获取数组长度的函数&#xff0c;最起码我不知道&#xff0c;所以编写了一个函数取数组的长度&#xff0c;调试成功&#xff0c;大家可以试试。另外也可以用sizeof(a)/4来取得整型数组的长度&#xff0c;因为整型占4个字节。效果相同。#include "web_api.h&qu…

6个你必须知道的机器学习的革命性的教训

加入「公开课」交流群&#xff0c;获取更多学习资料、课程及热招岗位等信息作者 | James Warner编译 | ronghuaiyang来源 | 转载自AI公园&#xff08;ID:AI_Paradise)【导读】机器学习是未来&#xff0c;因为它将广泛应用于计算机和其他领域。尽管如此&#xff0c;开发有效的机…

vim ctags使用方法

一、用好系统自带软件ctags大部分的unix系统都有ctags软件&#xff0c;它能跟vim很好地合作。用途:生成c语言的标签文件&#xff0c;实现相关c文件之间的跳转。用法:1.生成标签文件在当前目录下(运行$提示符后面的命令): $ctags -R .-R表示recursive&#xff0c;递归,为当前目录…

pybind11介绍

pybind11是一个轻量级的仅头文件库&#xff0c;主要用于创建现有C代码的Python绑定&#xff0c;它的源码在https://github.com/pybind/pybind11&#xff0c;license为BSD&#xff0c;最新发布版本为2.9.1。 可将pybind11库视为Boost.Python的一个小型自包含版本(Think of this …

改善AI性别偏见的4种方法 | CSDN博文精选

加入「公开课」交流群&#xff0c;获取更多学习资料、课程及热招岗位等信息作者 | Josh Feast翻译 | 王子龙校对 | 王琦本文阐述导致AI偏见的原因并提出应用的解决方案。任何对AI偏见的审查都需要意识到一个事实&#xff1a;这些偏见主要源于人类固有的偏见。我们创建、训练的模…

C#程序调用外部程序

/**编程语言&#xff1a;VisualStudio.NetC#(Beta2)*作者&#xff1a;迪泊威*功能&#xff1a;通过C#程序调用Windows记事本程序编辑一个*名为test.txt的文本文件。**在整个程序中System.Diagnostics.Process.Start(Info)*为主要语句。*如果只是单独执行一个外部程序&#xff0…