lambda匿名函数的用法:lambda 形参 表达式,例如 lamdba x x+1 会返回x+1的值

res = lambda x:x +2
n1 = res(2)
print(n1)
当函数调用另一个函数的时候,另外一个函数的状态会被保存
尾调用

函数作为参数
num1 = [1,2,10,5,3,7]
list1 = []


def map_test(func, array):
for i in array:
res = func(i)
list1.append(res)
return list1
def add_one(x):
return x + 1
def reduce_one(x):
return x - 1
def shengyi_one(x):
return x ** 2

#print(map_test(add_one, num1))
print(map_test(reduce_one, num1))


map函数
用法:map(函数,参数)
注意:map函数返回的是一个人迭代器
num1 = [1,2,10,5,3,7]
print(list(map(lambda x:x+1,num1)))
相当于如下
num1 = [1,2,10,5,3,7]
list1 = []
res = map(lambda x:x+1,num1)
for i in res:

list1.append(i)
print(list1)
filter()函数,过滤,用法
filter(函数,参数)前面的函数一般是一个判断True和False的值

 reduce函数在2中直接用,但是在3中要先导入模块

list1 = [1,2,3,600]
from functools import reduce

print(reduce(lambda x,y:x*y ,list1,1))


最后一个1为初始值
总结
map()函数:处理序列(可迭代对象)中的每一个元素,得到的结果是一个列表,改列表及元素位置与原来一样
filter()函数:遍历列表(可迭代对象)中的每一个元素,判断每个元素得到布尔值,如果是true,则保留下来
reduce()函数处理一个序列(可迭代对象),然后吧序列进行合并操作



 
posted on 2018-07-28 20:14  小小2777  阅读(42)  评论(0)    收藏  举报