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 __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
Python中尝试多线程编程的一个简明例子
Apr 07 Python
Python中的choice()方法使用详解
May 15 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python箱型图处理离群点的例子
Dec 09 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
python爬虫要用到的库总结
Jul 28 Python
如何基于Django实现上下文章跳转
Sep 16 Python
Python下opencv库的安装过程及问题汇总
Jun 11 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
URL Rewrite的设置方法
2007/01/02 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
详谈PHP编码转换问题
2015/07/28 PHP
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
Python按行读取文件的简单实现方法
2016/06/22 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python try 异常处理(史上最全)
2019/03/07 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
西部世纪面试题
2014/12/05 面试题
初三学习计划书范文
2014/04/30 职场文书
第二课堂活动总结
2014/05/07 职场文书
商品陈列协议书
2014/09/29 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
python中的被动信息搜集
2021/04/29 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
全网非常详细的pytest配置文件
2022/07/15 Python
Nginx报404错误的详细解决方法
2022/07/23 Servers
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript