简单了解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中使用mechanize模块模拟浏览器功能
May 05 Python
使用pdb模块调试Python程序实例
Jun 02 Python
Python解析树及树的遍历
Feb 03 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
python日志logging模块使用方法分析
May 23 Python
python验证码图片处理(二值化)
Nov 01 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 Python
详细介绍python类及类的用法
May 31 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
JS常用函数使用指南
2014/11/23 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
python执行使用shell命令方法分享
2017/11/08 Python
django2 快速安装指南分享
2018/01/05 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python 处理图片像素点的实例
2019/01/08 Python
python3.x实现base64加密和解密
2019/03/28 Python
python+django+rest框架配置创建方法
2019/08/31 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
《老山界》教学反思
2014/04/08 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js