1.python函数式编程-map函数
Posted wintersweet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.python函数式编程-map函数相关的知识,希望对你有一定的参考价值。
编程方法论
- 面向过程
- 函数式
- 面向对象
面向过程
将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程;
函数式编程
编程语言定义的函数+数学意义的函数
1、不可变,不用变量保存状态,不修改变量;
2、第一类对象,函数即变量---------高阶函数:把函数当做参数传递给另外一个函数;返回值中包含函数。(装饰器)
3、尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)
调用栈:在系统调用递归函数的时候不是最后一步(区别最后一行),则需要保留当前层的状态。如果是最后一步进入递归,则不用保留当前层状态,性能更强。(递归函数的优化则需要进入尾调用,进入尾递归)
函数:
map:处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样
filter:遍历序列中的每个元素,判断每个元素得到的布尔值,如果是True则留下来
reduce:将多个数值合并到一块
map函数
将方法和要处理的数据通过参数传入函数中,在函数调用的时候可以指定不同的方法,方法更加灵活。
1 num_1 = [1,2,3,10,5,7,9] 2 def mapfunc(func,array): 3 ret = [] 4 for i in array: 5 ret.append(func(i)) 6 return ret 7 8 print(mapfunc(lambda x:x+1,num_1)) #执行自增加一 9 print(mapfunc(lambda x:x**2,num_1)) #执行二次方
执行结果:
[2, 3, 4, 11, 6, 8, 10] [1, 4, 9, 100, 25, 49, 81]
map函数
1 num_1 = [1,2,3,10,5,7,9] 2 res = map(lambda x:x+1,num_1) #res为迭代器,只能调用一次,一般使用list方法来查看迭代器的值 3 print(res) 4 print(list(res))
执行结果:
<map object at 0x000001F93A610160> [2, 3, 4, 11, 6, 8, 10]
以上是关于1.python函数式编程-map函数的主要内容,如果未能解决你的问题,请参考以下文章
python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
(转)Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)
Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊