Pythont特殊语法filter,map,reduce,apply使用方法


Posted in Python onFebruary 27, 2016

(1)lambda

lambda是Python中一个很有用的语法,它允许你快速定义单行最小函数。类似于C语言中的宏,可以用在任何需要函数的地方。

基本语法如下:

函数名 = lambda args1,args2,...,argsn : expression

例如:

add = lambda x,y : x + y
print add(1,2)

(2)filter

filter函数相当于一个过滤器,函数原型为:filter(function,sequence),表示对sequence序列中的每一个元素依次执行function,这里function是一个bool函数,举例说明:

sequence = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x : x % 2 == 0
seq = filter(fun,sequence)
print seq

以下代码就是表示筛选出sequence中的所有偶数。

filter函数原型大致如下:

def filter(fun,seq):
    filter_seq = []
    for item in seq:
        if fun(item):
            filter_seq.append(item)
    return filter_seq

(3)map

map的基本形式为:map(function,sequence),是将function这个函数作用于sequence序列,然后返回一个最终结果序列。比如:

seq = [1,2,3,4,5,6]
fun = lambda x : x << 2

print map(fun,seq)

map的函数源代码大致如下:

def map(fun,seq):
    mapped_seq = []
    for item in seq:
        mapped_seq.append(fun(item))
    return mapped_seq

(4)reduce

reduce函数的形式为:reduce(function,sequence,initVal),function表示一个二元函数,sequence表示要处理的序列,而initVal表示处理的初始值。比如:

seq = [1,2,3,4,5,6,7,8,9,10]
fun = lambda x,y: x + y

print reduce(fun,seq,0)

表示从初始值0开始对序列seq中的每一个元素累加,所以得到结果是55

reduce函数的源代码大致如下:

def reduce(fun,seq,initVal = None):
    Lseq = list(seq)
    if initVal is None:
        res = Lseq.pop(0)
    else:
        res = initVal
    for item in Lseq:
        res = fun(seq,item)
    return res

(5)apply

apply是用来间接地代替某个函数,比如:

def say(a,b):
    print a,b

apply(say,(234,'Hello World!'))
Python 相关文章推荐
Python中为feedparser设置超时时间避免堵塞
Sep 28 Python
Python中的lstrip()方法使用简介
May 19 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
Python实现的直接插入排序算法示例
Apr 29 Python
python redis 删除key脚本的实例
Feb 19 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
python list转置和前后反转的例子
Aug 26 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
使用pth文件添加Python环境变量方式
May 26 Python
Python文件的操作示例的详细讲解
Apr 08 Python
python 网络爬虫初级实现代码
Feb 27 #Python
Python数据库的连接实现方法与注意事项
Feb 27 #Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 #Python
学习python之编写简单乘法口诀表实现代码
Feb 27 #Python
学习python 之编写简单乘法运算题
Feb 27 #Python
python学习之编写查询ip程序
Feb 27 #Python
用python写的一个wordpress的采集程序
Feb 27 #Python
You might like
关于PHP实现异步操作的研究
2013/02/03 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
两种php实现图片上传的方法
2016/01/22 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
js 函数的副作用分析
2011/08/23 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
详解python的super()的作用和原理
2020/10/29 Python
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
英语教师岗位职责
2014/03/16 职场文书
仓库文员岗位职责
2014/04/06 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
出租车拒载检讨书
2015/01/28 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android