十一、内置函数:
详情见 常见系统函数
十二、常用的高阶函数(map、filter、reduce):
这三个高阶函数常用于数字的加减合并。配合匿名函数lambda表达式。
1、特性:
将后面序列中每一个元素按照前面函数的规则处理。
2、实例:
①map函数的映射规则:
list2 = list(map(lambda list1,list3:list1+list3,[1,2,3],[4,5,6]))
list3 = list(map(lambda list1,list3:list1+list3,[[1,2,3]],[[4,5,6]]))
print(list2)
print(list3)
过程:
结果:
②filter
list1 = [1,2,3,4,5,6,7]
list_xin = list(filter(lambda x:x%2 == 0,list1))
print(list_xin) # [2, 4, 6]
③reduce:reduce 需要导入模块 functools
import functools
sum = functools.reduce(lambda x,y:x+y,range(1,101)) 1-100的和,注意这里不需要加 list。
print(sum)
理解:
每次相加赋值给x,然后y不停取值。 x += y
3、利用map、filter、reduce求数字的加减:
import functools
# num = functools.reduce(lambda x,y:x*y,range(1,6)) 求阶乘的函数
# print(num)
list1 = list(map(lambda a:functools.reduce(lambda x,y:x*y,range(1,a+1)),range(1,6))) 高阶函数的嵌套 求1-5阶乘的列表
print(list1)
num1 = functools.reduce(lambda x,y:x+y,list1) reduce 合并相加
print(num1)
#
十三、python的闭包:
1、特性:
如果在一个内部函数,对外部作用域(非全局作用域)的变量进行引用,那么内部函数FuncY()就被认为是闭包(closure)。
def funcx():
a = 1
def funcy():
print(a)
return funcy # 与递归不同的是这里没有运行,这是返回函数名。
funcx()()