标签:合并 end red 布尔值 区别 map函数 优化 [] 遍历
将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程;
编程语言定义的函数+数学意义的函数
1、不可变,不用变量保存状态,不修改变量;
2、第一类对象,函数即变量---------高阶函数:把函数当做参数传递给另外一个函数;返回值中包含函数。(装饰器)
3、尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)
调用栈:在系统调用递归函数的时候不是最后一步(区别最后一行),则需要保留当前层的状态。如果是最后一步进入递归,则不用保留当前层状态,性能更强。(递归函数的优化则需要进入尾调用,进入尾递归)
函数:
map:处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样
filter:遍历序列中的每个元素,判断每个元素得到的布尔值,如果是True则留下来
reduce:将多个数值合并到一块
将方法和要处理的数据通过参数传入函数中,在函数调用的时候可以指定不同的方法,方法更加灵活。
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]
标签:合并 end red 布尔值 区别 map函数 优化 [] 遍历
原文地址:https://www.cnblogs.com/chrrydot/p/9784981.html