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()函数处理一个序列(可迭代对象),然后吧序列进行合并操作


浙公网安备 33010602011771号