python基础学习——函数(二):map\reduce\filter函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基础学习——函数(二):map\reduce\filter函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2001字,纯文字阅读大概需要3分钟。
内容图文
一、编程式方法论:面向对象、函数式和面向过程
1 面向过程:返回值函数,基本单位是函数。
找到解决问题的入口,按照固定的流程去模拟解决问题的流程,对过程细分,每次都从头运行,比函数式易读
2 函数式:编程式定义的函数+数学意义的函数
特性:不可变,不用变量保存状态,变量不可修改,没有赋值的操作
第一类对象,函数即“变量”
3、高阶函数:满足如下条件之一:
1)函数接受的参数是另外一个函数
# 把函数当作参数传给另外一个函数 def foo(n):#n=barprint(n) def bar(name): print("my name is %s" %name) foo(bar)#n=bar 方式二: def foo(n):#n=barprint(n) def bar(name): print("my name is %s" %name) foo(bar("abc") ) 结果: my name is abc None # bar没有返回值,故传none给foo
2)返回值中包含函数
# 返回值中包含函数 def bar(): print("from bar") def foo(): print("from foo") return bar n=foo() n() 结果: from foo from bar
二、map函数
1、特征:处理序列中的每个元素,得到的结果是一个“列表”,该“列表“元素个数及位置与原来一样
逻辑简单用lambda,逻辑复杂使用自定义函数
待处理的数据类型是可迭代对象即可,与for循环一起配合实现
2、样例
eg1
map_test(数据处理的方法和逻辑,待处理的可迭代的数据类型的数据)
num=[3,4,2,94,5,9,23] def add_one(x): return x+1 def reduce_one(x): return x-2 def map_test(func,array): ret=[] for i in array: res=func(i)#add_one(i) ret.append(res) return ret print(map_test(add_one,num)) print(map_test(lambda x:x-1,num)) print(list(map(lambda x:x**2,num))) print(list(map(reduce_one,num)))
eg2
mag="linhang"print(list(map(lambda x:x.upper(),mag)))
三、filter函数
1、函数特征:遍历序列中的每个元素,判断每个元素后得到布尔值,如果是真,则保留下来,最后得出一个新的列表组合
filter(数据处理的方法逻辑返回值是布尔值,待处理的可循环的数据)
样例
movie_people=["nana-x","nana1-x","xiaoxiao","KK","nana"] def x_show(n): return n.endswith("x") def filter_test(func,array): ret=[] for i in array: ifnot func(i): ret.append(i) return ret print(list(filter(x_show,movie_people))) print(list(filter(lambda x:x.endswith("x"),movie_people))) print(list(filter(lambda y:not y.startswith("nana"),movie_people)))
四、reduce函数
1、函数特征:处理一个序列,然后把序列进行合并操作,合并压缩得出一个最终的值
2、从functools模块中导入reduce模块
3、eg
方式一: num=[9,2,3,45,100] def reduce_test(func,array): res=array.pop(0) for i in array: res=func(res,i) return res print(reduce_test(lambda x,y:x*y,num)) 方式二: from functools import reduce num=[9,2,3,45,100] print(reduce(lambda x,y:x*y,num)) print(reduce(lambda x,y:x*y,num),2) #1代表指定初始值
原文:https://www.cnblogs.com/xucuiqing/p/11638273.html
内容总结
以上是互联网集市为您收集整理的python基础学习——函数(二):map\reduce\filter函数全部内容,希望文章能够帮你解决python基础学习——函数(二):map\reduce\filter函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。