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抓取京东商城手机列表url实例代码
Dec 18 Python
Python中下划线的使用方法
Mar 27 Python
python传递参数方式小结
Apr 17 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
Python格式化输出%s和%d
May 07 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
python实现狄克斯特拉算法
Jan 17 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
pycharm软件实现设置自动保存操作
Jun 08 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 curl选项列表(超详细)
2013/07/01 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
form自动提交实例讲解
2017/07/10 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
pandas object格式转float64格式的方法
2018/04/10 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
家长写给孩子的评语
2014/04/18 职场文书
2014年电教工作总结
2014/12/19 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Python实现生成bmp图像的方法
2021/06/13 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python