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抓取百度首页的方法
May 19 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python制作简易注册登录系统
Dec 15 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
python matlibplot绘制多条曲线图
Feb 19 Python
python实现感知器算法(批处理)
Jan 18 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
python中tab键是什么意思
Jun 18 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
用Python创建简易网站图文教程
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
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
浅析vue深复制
2018/01/29 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
layui table单元格事件修改值的方法
2019/09/24 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python 从相对路径下import的方法
2018/12/04 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
python实现批处理文件
2020/07/28 Python
一套.net面试题及答案
2016/11/02 面试题
自我评价是什么
2014/01/04 职场文书
英语生日邀请函
2014/01/23 职场文书
学生鉴定评语大全
2014/05/05 职场文书
企业人事任命书
2014/06/05 职场文书
会计电算化专业求职信
2014/06/10 职场文书
化工实习心得体会
2014/09/09 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技