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判断操作系统类型代码分享
Nov 22 Python
Python字符串和文件操作常用函数分析
Apr 08 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
WxPython建立批量录入框窗口
Feb 27 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python中树与树的表示知识点总结
Sep 14 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
python是怎么被发明的
Jun 15 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
js静态作用域的功能。
2006/12/25 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
Vue props用法详解(小结)
2018/07/03 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
总经理助理的职责
2014/03/14 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
民事授权委托书范文
2014/08/02 职场文书
无保留意见审计报告
2015/06/05 职场文书
遗嘱格式范本
2015/08/07 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL