Python中针对函数处理的特殊方法


Posted in Python onMarch 06, 2014

很多语言都提供了对参数或变量进行处理的机制,作为灵活的Python,提供了一些针对函数处理的特殊方法
filter(function, sequence): 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple
map(function, sequence) : 对sequence中的item依次执行function(item),见执行结果组成一个List
reduce(function, sequence, starting_value): 对sequence中的item顺序迭代调用function
sum(sequence): 对集合中的元素进行累加

下面针对上面的描述写一个简单的小例子:

__author__ = 'Administrator'
from functools import reduce
#主要用来掩饰map可以将某个序列中的元素传递给某个特殊的函数来处理
def map_demo():
    #定义一个将字母转换成大写的函数
    def to_upper(ch):
        return str(ch).upper()
    #对给定字符串中的每个字母应用to_upper函数
    print(list(map(to_upper, "asdfasdfuasdlaksdjf".split())))

#主要使用一个基于布尔值得函数对元素进行过滤
def filter_demo():
    def is_alnum(ch):
        return ch.isalnum()
    #!se会被过滤掉
    test_list = ['sdas', '123d', '!se', '孙阿斯蒂芬']
    #基于具体函数
    print(list(filter(is_alnum, test_list)))
    #基于列表推导
    print(list(x for x in test_list if x.isalnum()))
    #基于匿名函数
    print(list(filter(lambda x: x.isalnum(), test_list)))

#reduce的主要功能是利用列表中的两个元素迭代调用某个函数,最后得到一个结果
#在python3中要显示的添加 from functools import reduce
#本例中运行的过程大致是先是1+2=3,利用3+4=7,7+4.......
def reduce_demo():
    print(reduce(lambda x, y: x + y, range(1, 10)))

#利用sum函数累加列表中的值
def sum_demo():
    print(sum(range(10)))

if __name__ == "__main__":
    #map_demo()
    #filter_demo()
    #reduce_demo()
    sum_demo()
Python 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
python实现中文转换url编码的方法
Jun 14 Python
windows系统下Python环境搭建教程
Mar 28 Python
Python标准库之itertools库的使用方法
Sep 07 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
python实现小球弹跳效果
May 10 Python
Django实现跨域的2种方法
Jul 31 Python
Python的形参和实参使用方式
Dec 24 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
用python批量移动文件
Jan 14 Python
Python+Appium新手教程
Apr 17 Python
python连接mysql调用存储过程示例
Mar 05 #Python
python益智游戏计算汉诺塔问题示例
Mar 05 #Python
python连接mysql并提交mysql事务示例
Mar 05 #Python
python遍历文件夹并删除特定格式文件的示例
Mar 05 #Python
python的三目运算符和not in运算符使用示例
Mar 03 #Python
python使用cookielib库示例分享
Mar 03 #Python
python使用cookie库操保存cookie详解
Mar 03 #Python
You might like
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python win32 简单操作方法
2017/05/25 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python列表返回重复数据的下标
2020/02/10 Python
Python换行与不换行的输出实例
2020/02/19 Python
实习老师个人总结的自我评价
2013/09/28 职场文书
安全生产标语
2014/06/06 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
病危通知单
2015/04/17 职场文书
事业单位岗位说明书
2015/10/08 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python