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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
玩转python爬虫之cookie使用方法
Feb 17 Python
Python使用filetype精确判断文件类型
Jul 02 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
python删除指定列或多列单个或多个内容实例
Jun 28 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
PyQt QMainWindow的使用示例
Mar 24 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
一个简洁的多级别论坛
2006/10/09 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
神经网络python源码分享
2017/12/15 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
C#面试题
2016/05/06 面试题
团队精神演讲稿
2013/12/31 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
中国合伙人观后感
2015/06/02 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书