百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python4大函数式编程函数,每一个都是经典!

off999 2024-10-24 12:29 30 浏览 0 评论

函数式编程或者函数程序设计,又称泛函数编程,是一种编程范式。

在Python中,函数编程主要有以下4个函数的使用构成:lambda()、map()、reduce()、filter(),下面我们来一一讲解这些函数的作用与特点。

匿名函数lambda

Python用def来定义一个函数,def后面跟函数名字,而匿名函数,顾名思义,这个函数没有名字,因为没有名字,不必担心函数名冲突。

匿名函数语法:lambda 参数列表 : 表达式

上图中先将创建好的匿名函数通过一个变量来接收,然后在使用变量去调用匿名函数,匿名函数lambda经常与其它函数结合使用,以此来达到意想不到的效果,下面会涉及到这部分。

Map函数

Map()函数会根据提供的函数对指定的序列做映射。

语法:map(function, iterable, ……),第一个参数function为函数,第二个参数iterable 为一个或者多个序列。

下图中展示如果将列表list1中的内容全部乘以2。

首先定义一个翻倍函数doublex,接着利用map函数将翻倍函数作用于列表中的每一个元素!

由于map函数Python 3.x版本中返回迭代器,所以用一个list函数输入内容。

前面我们介绍过匿名函数lambda,这里map函数结合lambda函数将会超级简洁,上面那个功能,用lambda函数,一行代码即可搞定,如下图所示:

省去了定义函数那一步,是不是要方面简洁很多?

Reduce函数

reduce函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

语法:reduce(function, iterable[, initializer])

Reduce函数有点类似于map函数,但map函数用于逐一遍历,而reduce函数用于递归计算,如下例中所示:

例1中先通过匿名函数创建一个两数相加函数,接着利用reduce函数这两数相加函数作用在列表中,第一步先计算1+2=3,第二步3+3=6,第三步6+4=10,第四步10+5=15。

同理例2中,range(1,11)相当于给出了一个列表[1,2,3,4,5,6,7,8,9,10],lambda构造一个二元函数,返回两个参数的乘积。Reduce函数首先将列表的前两个元素作为函数的参数进行运算,接着将运算结果与第三个元素作为函数的参数,然后再将运算结果与第四个参数作为函数的参数……依次类推,直至列表元素结束,返回最终的结果。

需要注意的是,reduce函数在Python2.x版本中可直接使用,但是在3.x版本中,需要从functools导入才可以使用!

?filter函数

filter,过滤、筛选的意思,所以filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

语法:filter(function, iterable)

下图中例1用来筛选列表中大于5的元素,例2先定义了一个开平方为整数的函数,然后在作用于100以内的数字,如果平方根为整数,则输出。

同map函数一样,filter函数Python 3.x版本中返回迭代器,所以用一个list函数输入内容。

可以发现,使用filter函数首先需要一个返回值为布尔型的函数,如果为true,则在列表中挑出这个元素,最后将满足条件的所有元素组合成一个列表返回。

小结

虽然很多时候以上四个函数的功能也可以用其它方式实现,但是我们使用lambda、map、reduce、filter函数最终的目的是兼顾简洁与效率,因为这四个函数的循环速度要比Python内置的for或while循环要快得多,相当于C语言的速度。

相关推荐

win7重装系统方法(win7系统重装详细步骤)

步骤1、打开云骑士装机大师,点击一键装机下的【立即重装】,检测完毕后点击【下一步】;步骤2、选择windows7下的旗舰版32位,点击【下一步】,自行选择或取消推荐的软件,点击【下一步】;步骤3、备份...

电脑桌面啥都没有了怎么回事

1、如果我们桌面上什么东西都没有,可以先打开任务管理器,然后顶级左上方的文件,随后新建任务,在打开的界面中输入explorer,点击确认之后,等个几秒钟左右就可以看见桌面上的图标了。  2、另一个方法...

如何将电脑恢复出厂设置win7

1.首先我们打开电脑找到“计算机”点击打开。2.进入页面然后我们点击“Windows7(C:)”打开C盘。3.我们在C盘界面找到Windows7并点击打开。4.进入到Win7文件夹中找到并双击“Sys...

u盘存在但是读不出来(u盘显示有内容但读不出来怎么办)

u盘能识别,不能读取可能是你关闭了u盘自动读取,取消后即可。步骤:1、在电脑桌面右键点击“计算机”,在出现的菜单中选择“管理”选项2、在弹出的计算机管理窗口,依次打开“计算机管理-服务和应用程序-服务...

win8家庭中文版下载(windows家庭中文版下载)

可以按照以下步骤在Win8上下载和安装Word:1.通过微软官网下载购买,或者通过MicrosoftStore应用商店进行购买和下载。2.下载完成后,打开文件夹,双击setup进行安装。3.安...

教大家强制退出苹果id账号(教大家强制退出苹果id账号ipad)

1.首先将手机强制关机,并在电脑端安装iTunes并打开。2.用数据线将手机与电脑连接起来,长按手机电源键。3.当出现苹果标志时不要松开电源键,接着按Home键。4.直到屏幕黑屏,松开电源键。5.继续...

惠普官网驱动下载官网(惠普驱动官方)

在惠普官网下载系统驱动方法如下访问HP官网:www.hp.com找到支持与驱动页面(通常在顶部导航栏的支持或下载中)输入你的HP产品的序列号或选择产品类型和型号选择你的操作系统,然后下载相关的驱动。安...

电脑公司取名字大全(电脑行业公司取名)

动感网络IT狂人行鱼雷IT网PC宝宝网外有鱼超导技术网PC技术网加点分吧,不然想不出太多,呵呵绿苑计算机协会绿色代表生命,有起航的意义,苑是一个范畴,有地域的意思,是给你们一片天地的意思...

系统一键重装win7(win7一键重装系统win10)
  • 系统一键重装win7(win7一键重装系统win10)
  • 系统一键重装win7(win7一键重装系统win10)
  • 系统一键重装win7(win7一键重装系统win10)
  • 系统一键重装win7(win7一键重装系统win10)
如何卸载显卡驱动(主板驱动)
  • 如何卸载显卡驱动(主板驱动)
  • 如何卸载显卡驱动(主板驱动)
  • 如何卸载显卡驱动(主板驱动)
  • 如何卸载显卡驱动(主板驱动)
wifi怎么设置网速快(手机测wifi网速怎么测)

wifi加速设置方法步骤如下。1设置网速:浏览器中输入终端地址,输入账号和密码。找到连接设备数目并进行更改,找到信道宽度,选择更快的网速。2提高WiFi网速:进入设置中心,点击WLAN选项。点击高级设...

华硕驱动软件叫什么(华硕自带驱动管理软件)

q-installer驱动啥意思?华硕q-installer驱动能让用户更加方便地管理各种文件。将会同时显示4个Windows资源管理器的窗口,这样能让用户更加简单地对文件进行一些操作,例如复制,粘贴...

懂行的人建议买华为还是惠普电脑

华为电脑好。华为笔记本电脑主打的就是轻薄,质感,多屏协同生态,面向商务人群和学生党。目前在售的机型并不多,但每一台机子本身都不错,不过因为被制裁的缘故,定价过高,性价比打折扣。惠普笔记本好,惠普除了家...

如何把win系统换成安卓(怎么把系统改为win10)

方法/步骤分步:1首先点击打开酷安应用市场;2点击打开位于屏幕右下方的“应用游戏”选项;3选择想要下载的软件或者游戏app,点击进入;4选择“下载”按钮,点击开始下载;5APP下载完成后,系统会自动跳...

win7摄像头软件哪个好(win7摄像头软件ecap)
  • win7摄像头软件哪个好(win7摄像头软件ecap)
  • win7摄像头软件哪个好(win7摄像头软件ecap)
  • win7摄像头软件哪个好(win7摄像头软件ecap)
  • win7摄像头软件哪个好(win7摄像头软件ecap)

取消回复欢迎 发表评论: