news 2026/4/25 7:01:21

简单了解Python中的几种函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简单了解Python中的几种函数

几个特殊的函数(待补充)

python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter、map、reduce、lambda、yield

lambda

1

2

3

4

5

>>> g=lambdax,y:x+y#x+y,并返回结果

>>> g(3,4)

7

>>> (lambdax:x**2)(4)#返回4的平方

16

lambda函数的使用方法:

在lambda后面直接跟变量

变量后面是冒号

冒号后面是表达式,表达式计算结果就是本函数的返回值

冒号后面是表达式,表达式计算结果就是本函数的返回值

比如,要打印一个list,里面依次是某个数字的1次方,二次方,三次方,四次方。用lambda可以这样做:

1

2

3

4

5

>>> lamb=[lambdax:x,lambdax:x**2,lambdax:x**3,lambdax:x**4]

>>>foriinlamb:

...printi(3),

...

392781

map

map()是python的一个内置函数,它的基本样式是:

map(func,seq)

func是一个函数,seq是一个序列对象。在执行的时候,序列对象中的每个元素,按照从左到右的顺序,依次被取出来,并放入

到func那个函数里面,并将func的返回值依次存到一个list中。如

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

>>> items=[1,2,3,4,5]

>>> squared=[]

>>>foriinitems:

... squared.append(i**2)

...

>>> squared

[1,4,9,16,25]

>>>defsqr(x):returnx**2

...

>>>map(sqr,items)

[1,4,9,16,25]

>>>map(lambdax: x**2, items)

[1,4,9,16,25]

>>> [ x**2forxinitems ]#这个我最喜欢了,一般情况下速度足够快,而且可读性强

[1,4,9,16,25]

要点:

对iterable中的每个元素,依次应用function的方法(本质上就是一个for循环)

将所有结果返回一个list

如果参数很多,则对那些参数并行执行function

继续下面两个例子:

1

2

3

4

>>> lst1=[1,2,3,4,5]

>>> lst2=[6,7,8,9,0]

>>>map(lambdax,y: x+y, lst1,lst2)#将两个列表中的对应项加起来,并返回一个结果列表

[7,9,11,13,5]

1

2

3

4

5

>>> lst1=[1,2,3,4,5]

>>> lst2=[6,7,8,9,0]

>>> lst3=[7,8,9,2,1]

>>>map(lambdax,y,z: x+y+z, lst1,lst2,lst3)

[14,17,20,15,6]

可以看到map函数的强大和简洁。如果使用for循环将会很繁琐

reduce

直接看例子:

1

2

>>>reduce(lambdax,y: x+y,[1,2,3,4,5])

15

reduce函数的计算方式是将列表中的元素累加,((((1+2)+3)+4)+5)=15 与map函数相比较就可以看出两者之间的区别。map是上下运算,reduce是横着逐个元素进行运算。

reduce含可以接受第三个值作为初始值:例如

1

2

>>>reduce(lambdax,y: x+y,[1,2,3,4,5],100)

115

上述列表中计算将以100为初始值执行累加计算,先计算 100+1

filter

filter的中文含义是“过滤器”,在python中,它就是起到了过滤器的作用.

通过下面代码体会:

1

2

3

4

5

6

7

8

9

10

11

12

>>> numbers=range(-5,5)

>>> numbers

[-5,-4,-3,-2,-1,0,1,2,3,4]

>>>filter(lambdax: x>0, numbers)

[1,2,3,4]

>>> [xforxinnumbersifx>0]#与上面那句等效

[1,2,3,4]

>>>filter(lambdax: x >3, [1,2,3,4,5])

[4,5]

拜读下filter的官方文档解释:

1

2

3

4

5

6

filter(...)

filter(functionorNone, sequence)->list,tuple,orstring

Return those items of sequenceforwhich function(item)istrue. If

functionisNone,returnthe items that are true. If sequenceisatuple

orstring,returnthe sametype,elsereturnalist.

总结

以上就是本文关于简单了解Python中的几种函数的全部内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 7:00:29

现代Python编程的四个关键点你知道几个

1、Python 中的类型提示Python 最近引入的类型提示语法允许 linter 和第三方代码质量工具在运行前分析你的代码,并在检测出可能发生的错误。你创建的 Python 代码与他人共享的次数越多,大家就越有可能从使用类型提示中受益。Python 的每个后续版本都推出…

作者头像 李华
网站建设 2026/4/25 6:58:58

机器学习优化相变存储器的关键技术解析

1. 相变存储器的技术挑战与机遇相变存储器(PCM)作为新一代非易失性存储技术,近年来在存储领域引起了广泛关注。与传统DRAM相比,PCM具有几个显著优势:首先,它采用硫系化合物材料(如Ge2Sb2Te5)的相变特性存储数据,通过晶…

作者头像 李华
网站建设 2026/4/25 6:57:27

Win11新电脑到手必做:手把手教你开启BitLocker加密,保护个人数据安全

Win11新机安全加固指南:BitLocker加密实战与数据防护策略 刚入手一台崭新的Win11电脑,那种拆封时的兴奋感想必每位科技爱好者都深有体会。但在这份喜悦背后,有多少人意识到:从开箱那一刻起,您的个人数据就已经暴露在潜…

作者头像 李华
网站建设 2026/4/25 6:56:51

论文AI率太高怎么办实测解法:多方案横评,降重鸟稳居第一

昨晚图书馆自习到闭馆,同学论文AI率暴击88%卡在知网,我一边吐槽“检测跟开挂似的”,一边硬着头皮找路子实测。 实测流程与策略:从平台选择到风格切换 降重鸟地址:https://jiangchongniao.com/aigc/?fromcsdn 我这次…

作者头像 李华