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利用matplotlib库绘制饼图的方法示例
Dec 18 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
python tkinter窗口最大化的实现
Jul 15 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
Feb 05 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python基础知识学习之类的继承
May 31 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 file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
如何编写高质量JS代码(续)
2015/02/25 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
jquery css实现流程进度条
2020/03/26 jQuery
python实现扫描ip地址的小程序
2019/04/16 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
材料加工硕士生求职信
2013/10/10 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
公司授权委托书范文
2014/08/02 职场文书
卖车协议书范例
2014/09/16 职场文书
基于Python实现一个春节倒计时脚本
2022/01/22 Python
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python