简单了解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 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
django 外键model的互相读取方法
Dec 15 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
Python netmiko模块的使用
Feb 14 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 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
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
Yii清理缓存的方法
2016/01/06 PHP
php生出随机字符串
2017/07/06 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
33种Javascript 表格排序控件收集
2009/12/03 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
javascript常见操作汇总
2014/09/03 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
Vuex 入门教程
2018/01/10 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python实现上传下载文件功能
2020/11/19 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python字符串判断密码强弱
2020/03/18 Python
使用python实现飞机大战游戏
2020/03/23 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
商铺租赁意向书
2014/04/01 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
2016党员入党决心书
2015/09/22 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis