简单了解Python中的几种函数


Posted in Python onNovember 03, 2017

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

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

lambda

>>> g = lambda x,y:x+y #x+y,并返回结果
>>> g(3,4)
7
>>> (lambda x:x**2)(4) #返回4的平方
16

lambda函数的使用方法:

在lambda后面直接跟变量

变量后面是冒号

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

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

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

>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]
>>> for i in lamb:
...   print i(3),
... 
3 9 27 81

map

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

map(func,seq)

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

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

>>> items = [1,2,3,4,5]
>>> squared = []
>>> for i in items:
...   squared.append(i**2)
... 
>>> squared
[1, 4, 9, 16, 25]

>>> def sqr(x): return x**2
... 
>>> map(sqr,items)
[1, 4, 9, 16, 25]

>>> map(lambda x: x**2, items)
[1, 4, 9, 16, 25]

>>> [ x**2 for x in items ]   #这个我最喜欢了,一般情况下速度足够快,而且可读性强
[1, 4, 9, 16, 25]

要点:

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

将所有结果返回一个list

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

继续下面两个例子:

>>> lst1 = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,0]
>>> map(lambda x,y: x+y, lst1,lst2)   #将两个列表中的对应项加起来,并返回一个结果列表
[7, 9, 11, 13, 5]
>>> lst1 = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,0]
>>> lst3 = [7,8,9,2,1]
>>> map(lambda x,y,z: x+y+z, lst1,lst2,lst3)
[14, 17, 20, 15, 6]

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

reduce

直接看例子:

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

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

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

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

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

filter

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

通过下面代码体会:

>>> numbers = range(-5,5)
>>> numbers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]

>>> filter(lambda x: x>0, numbers) 
[1, 2, 3, 4]

>>> [x for x in numbers if x>0]   #与上面那句等效
[1, 2, 3, 4]

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

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

filter(...)
  filter(function or None, sequence) -> list, tuple, or string
  
  Return those items of sequence for which function(item) is true. If
  function is None, return the items that are true. If sequence is a tuple
  or string, return the same type, else return a list.

总结

以上就是本文关于简单了解Python中的几种函数的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python算法输出1-9数组形成的结果为100的所有运算式、Python生成数字图片代码分享等,有什么问题可以随时留言,小编会及时回复大家的。

Python 相关文章推荐
Python ZipFile模块详解
Nov 01 Python
python局域网ip扫描示例分享
Apr 03 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python3 下载网络图片代码实例
Aug 27 Python
python实现视频读取和转化图片
Dec 10 Python
jupyter notebook的安装与使用详解
May 18 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
python实现进度条的多种实现
Apr 29 Python
python Pygame的具体使用讲解
Nov 03 #Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 #Python
django定期执行任务(实例讲解)
Nov 03 #Python
python嵌套字典比较值与取值的实现示例
Nov 03 #Python
基于Python os模块常用命令介绍
Nov 03 #Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 #Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 #Python
You might like
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
js onclick事件传参讲解
2013/11/06 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
jquery实现选项卡切换代码实例
2019/05/14 jQuery
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
在Python中使用成员运算符的示例
2015/05/13 Python
Python Requests安装与简单运用
2016/04/07 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python递归实现打印多重列表代码
2020/02/27 Python
Python数据可视化图实现过程详解
2020/06/12 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
中级会计职业生涯规划书
2014/03/01 职场文书
库房管理员岗位职责
2014/03/09 职场文书
2015年推普周活动总结
2015/03/27 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
初二英语教学反思
2016/02/15 职场文书
python实现简单聊天功能
2021/07/07 Python
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技