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开发常用的一些开源Package分享
Feb 14 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
python中redis包操作数据库的教程
Apr 19 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
使用js画图之饼图
2015/01/12 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
node基于async/await对mysql进行封装
2019/06/20 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
python 中split 和 strip的实例详解
2017/07/12 Python
Python实现简单http服务器
2018/04/12 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Django csrf 验证问题的实现
2018/10/09 Python
python求质数列表的例子
2019/11/24 Python
浅谈Python协程
2020/06/17 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
党校学习自我鉴定
2014/02/24 职场文书
2014年党支部承诺书
2014/05/30 职场文书
统计学教授推荐信
2014/09/18 职场文书
市场总监岗位职责
2015/02/11 职场文书
革命电影观后感
2015/06/18 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis