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错误处理详解
Sep 28 Python
python下载文件时显示下载进度的方法
Apr 02 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python中字典的setdefault()方法教程
Feb 07 Python
python数字图像处理实现直方图与均衡化
May 04 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
python操作xlsx格式文件并读取
Jun 02 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 判断变量类型实现代码
2009/10/23 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
Python3简单实例计算同花的概率代码
2017/12/06 Python
python计算两个地址之间的距离方法
2018/06/09 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python画双y轴图像的示例代码
2019/07/07 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
应聘自荐信
2013/12/14 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
企业精神口号
2014/06/11 职场文书
学生干部培训方案
2014/06/12 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
办公室规章制度范本
2015/08/04 职场文书
中秋节随笔
2015/08/15 职场文书
社区结对共建协议书
2016/03/23 职场文书