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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
介绍Python中内置的itertools模块
Apr 29 Python
python实现爬虫下载美女图片
Jul 14 Python
python web框架学习笔记
May 03 Python
定制FileField中的上传文件名称实例
Aug 23 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
python实现最大优先队列
Aug 29 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
python如何写个俄罗斯方块
Nov 06 Python
利用Python实现Picgo图床工具
Nov 23 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
jQuery学习基础知识小结
2010/11/25 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python调用自定义函数的实例操作
2019/06/26 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
产品质量保证书
2014/04/29 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书