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怎么学好python?
Oct 07 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
TensorFLow 变量命名空间实例
Feb 11 Python
python输出pdf文档的实例
Feb 13 Python
Python类和实例的属性机制原理详解
Mar 21 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
vue实现搜索功能
2019/05/28 Javascript
python实现图片彩色转化为素描
2019/01/15 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Django异步任务线程池实现原理
2019/12/17 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
百丽国际旗下购物网站:优购
2017/02/28 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
物理专业本科生自荐信
2014/01/30 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
Python turtle实现贪吃蛇游戏
2021/06/18 Python
python3操作redis实现List列表实例
2021/08/04 Python