简单了解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去掉字符串中重复字符的方法
Feb 27 Python
简洁的十分钟Python入门教程
Apr 03 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
python中reduce()函数的使用方法示例
Sep 29 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
python读取文件名并改名字的实例
Jan 07 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Django 实现图片上传和下载功能
Dec 31 Python
Django migrate报错的解决方案
May 20 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通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python中zip()函数用法实例教程
2014/07/31 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
产品推广策划方案
2014/05/10 职场文书
贷款担保申请书
2014/05/20 职场文书
心得体会的写法
2014/09/05 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
亮剑观后感500字
2015/06/05 职场文书