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模拟登陆Tom邮箱示例分享
Jan 13 Python
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
python算法演练_One Rule 算法(详解)
May 17 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
Python requests发送post请求的一些疑点
May 20 Python
用Django写天气预报查询网站
Oct 21 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 Python
python中pymysql包操作数据库方法
Apr 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP的中问验证码
2006/11/25 PHP
php下实现农历日历的代码
2007/03/07 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
使用PDB模式调试Python程序介绍
2015/04/05 Python
python中as用法实例分析
2015/04/30 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
资产评估专业大学生求职信
2013/09/29 职场文书
学期自我评价
2014/01/27 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
教你怎么用python selenium实现自动化测试
2021/05/27 Python
Python 数据科学 Matplotlib图库详解
2021/07/07 Python