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 正则表达式操作指南
May 04 Python
粗略分析Python中的内存泄漏
Apr 23 Python
python中self原理实例分析
Apr 30 Python
在Python中用split()方法分割字符串的使用介绍
May 20 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
python skimage 连通性区域检测方法
Jun 21 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
浅谈Python 中的复数问题
May 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
PHP新手入门学习方法
2011/05/08 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
Python应用库大全总结
2018/05/30 Python
python进程和线程用法知识点总结
2019/05/28 Python
django 消息框架 message使用详解
2019/07/22 Python
python多线程分块读取文件
2019/08/29 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
Django之腾讯云短信的实现
2020/06/12 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
网络体系结构及协议的定义
2014/03/13 面试题
学期研究性学习个人的自我评价
2014/01/09 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
党员承诺书范文
2014/05/19 职场文书
大专生找工作自荐书
2014/06/10 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
档案工作个人总结
2015/03/03 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python