简单了解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设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
Python中对象的引用与复制代码示例
Dec 04 Python
Python之web模板应用
Dec 26 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
Django和Flask框架优缺点对比
Oct 24 Python
使用Python函数进行模块化的实现
Nov 15 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
django rest framework使用django-filter用法
Jul 15 Python
python实现数字炸弹游戏
Jul 17 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+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
python:socket传输大文件示例
2017/01/18 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
Python基于百度云文字识别API
2018/12/13 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
运动会跳远广播稿
2014/02/04 职场文书
闭幕式主持词
2014/04/02 职场文书
春节慰问信范文
2015/02/15 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android