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 相关文章推荐
Django使用Celery异步任务队列的使用
Mar 13 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
django解决跨域请求的问题详解
Jan 20 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Python列表对象实现原理详解
Jul 01 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
基于python中__add__函数的用法
Nov 25 Python
使用 Python 遍历目录树的方法
Feb 29 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
python基于opencv 实现图像时钟
Jan 04 Python
python如何进行基准测试
Apr 26 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
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
php类常量的使用详解
2013/06/08 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
javascript的函数
2007/01/31 Javascript
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
质量承诺书范文
2014/03/27 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
妇女干部培训方案
2014/05/12 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书