匿名函数
关键字:lambda (本质:表达式)
1 #普通函数 2 def add(x,y): 3 return x+y 4 #匿名函数命名: 5 lambda x,y: x+y 6 #匿名函数冒号后面只能是表达式
三元表达式
条件为真时返回的结果 if 条件判断 else 条件为假时返回结果
map 类
1 list_x = [1,2,3,4,5,6,7,8 ] 2 def square(x): 3 reyurn x * x 4 r = map(square, list_x) 5 print(list(r)) 6 Result:[1,4,9,16,25,36,49,64] 7 #执行for循环
#map和匿名函数结合使用
r = map(lambda x: x*x, list_x)
map的结果列表长度取决于两组列表中最短列表的长度
reduce 函数
1 from functools import reduce 2 #连续计算, 连续调用lambda 3 #reduce必须有两个参数 4 list_x = [1,2,3,4,5,6,7,8] 5 r = reduce(lambda x,y: x+y, list_x)#第三个参数的属性为初始值 6 print(r) 7 Result: 36 8 # 运行规则 在没有传入y值时,会将x的前两个值作为x和y,进行计算。 9 # (((1+2)+3)+4)+5
filter 过滤 类
1 # 消除所有的0 2 list_x = [1,0,1,0,0,1] 3 r = filter(lambda x: True if x==1 else False,list_x) / filter(lambda x: x,list_x) 4 print(list(r)) 5 Result: [1,1,1]
装饰器
# 多个函数打印当前时间 # 原则:对修改式封闭的 对扩展式开放的 # 装饰器 (模式)增加功能 函数内部不修改 import time def decorator():#装饰器外部实现函数 def wrapper(): print(time.time()) return wrapper
@decorator #语法糖
def f1(): print('This is a function') f = decorator(f1) f1() 调用不变
f()
# 装饰器decorator 完整形态 import time def decorator(func): def wrapper(*arga,**kw): print(time.time()) func(*args,**kw) return wrapper # args 可变参数 # kw 关键字参数 @decorator
浙公网安备 33010602011771号