简单了解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 相关文章推荐
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
python验证码识别的实例详解
Sep 09 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
python中class的定义及使用教程
Sep 18 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
Python 文件数据读写的具体实现
Jan 24 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
Python环境搭建过程从安装到Hello World
Feb 05 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python删除文本中行数标签的方法
2018/05/31 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python实现疫情地图可视化
2021/02/05 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
辞职信标准格式
2015/02/27 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
预备党员转正意见
2015/06/01 职场文书
政协常委会议主持词
2015/07/03 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python