简单了解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中的exec、eval使用实例
Sep 23 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
Python实现将n个点均匀地分布在球面上的方法
Mar 12 Python
python安装教程 Pycharm安装详细教程
May 02 Python
Python数据操作方法封装类实例
Jun 23 Python
python3.x实现base64加密和解密
Mar 28 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
Python基于字典实现switch case函数调用
Jul 22 Python
Python创建临时文件和文件夹
Aug 05 Python
浅谈python 类方法/静态方法
Sep 18 Python
Python进程池与进程锁之语法学习
Apr 11 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数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
python 以16进制打印输出的方法
2018/07/09 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
体育专业学生自我评价范文
2014/01/17 职场文书
演讲稿的写法
2014/05/19 职场文书
人事任命书格式
2014/06/05 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
高中运动会广播稿
2015/08/19 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS