Python 之map、filter、reduce
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python 之map、filter、reduce,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1853字,纯文字阅读大概需要3分钟。
内容图文
![Python 之map、filter、reduce](/upload/InfoBanner/zyjiaocheng/857/82d82c64f5e74300950c2b0cb417d7ae.jpg)
MAP
1.Python中的map()、filter()、reduce()
这三个是应用于序列的内置函数,这个序列包括list、tuple、str.
格式:
1>map(func,swq1[,seq2,...])
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
Python函数编程中map()函数是将func作用域seq中的每一个元素,并将所有的调用的结果作为一个list返回。如果func为None,作用同zip()。(变为一个含有几个元组的列表)
另一个解释,function可以理解为是一个一对一或者多对一的函数,map作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
1.1>比如要对一个序列中的每个元素进行平方运算:
map(lamda x:x**2,[1,2,3,4,5])
'''[1,4,9,16,25]'''
1.2>在参数存在多个序列时,会依次每个序列中相同位置的元素做参数调用function函数。比如要对两个序列中的元素依次求和。
map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])
'''[3,7,11,15,19]'''
注意:function函数的参数数量,要和map中提供的集合数量相匹配,如果集合长度不等,会以最小长度对所有集合进行截取。
1.3>当函数为None是,操作和zip相似
map(None,[1,3,5,7,9],[2,4,6,8,10])
'''[(1,2),(3,4),(5,6),(7,8),(9,10)]'''
filter函数
filter函数会对序列执行过滤操作。
1.定义
filter(function or None,sequence)------>list,tuple ,or string
function是一个谓语函数,接受一个参数,返回布尔值TRUE或FALSE。
filter函数会对序列参数sequence中的每个参数调用function函数,最后返回的结果为TRUE的元素,返回值的类型和参数sequence的类型相同。
2.例子
def is_even(x):
return x&1 != 0
filter(is_even,[1,2,3,4,5,6,7,8,9,10])
结果:
'''[1,3,5,7,9]'''
reduce 函数
1.定义:reduce(function,sequence[,initial]) --->value
function参数一个有两个参数的函数,reduce依次从sequence中去一个元素,和上一次调用function的结果做参数在此调用function。
第一次调用function时,如果提供initial参数,会以sequence中第一个元素和initial作为参数调用function,否则会以序列sequence中前两个元素做参数调用function。
注意:function函数不能为None
reduce(lambda x,y:x+y,[2,3,4,5,6],1)
'''21 ((((((1+2)+3)+4)+5)+6)'''
reduce(lambda x,y:x+y,[2,3,4,5,6])
'''20'''
内容总结
以上是互联网集市为您收集整理的Python 之map、filter、reduce全部内容,希望文章能够帮你解决Python 之map、filter、reduce所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。