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 相关文章推荐
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python程序中的观察者模式结构编写示例
May 27 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
django 扩展user用户字段inlines方式
Mar 30 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
手把手教你用Django执行原生SQL的方法
Feb 18 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
php中rename函数用法分析
2014/11/15 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
用javascript实现倒计时效果
2021/02/09 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
解析Python中while true的使用
2015/10/13 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
师范院校学生自荐信范文
2013/12/27 职场文书
大学生党课思想汇报
2013/12/29 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
人事任命通知书
2015/04/21 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
Python如何使用循环结构和分支结构
2022/04/13 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL