- 高阶编程
- lambda 表达式
- 高阶函数
- 排序:按照给定的算法进行排序
- 系统高阶函数-map:将列表中的 每个元素按照一定的规则进行操作
- reduce:把可迭代的对象归并成一个结果
- filter:过滤函数
-
# lambda表达式 l = lambda x: 100 * x print(l(100)) # 多个参数 l1 = lambda x, y, z: x + y * z print(l1(1, 23, 4)) # 高阶函数 def funA(fun): return fun("function A") def funB(name): print("function B" + name) return None funA(funB) # map def mul(n): return n * 100 l1 = [i for i in range(10)] print(l1) l2 = map(mul, l1) for i in l2: print(i, end=" ") # reduce:必须有2个参数,必须导入 functools包 from functools import reduce def add(x, y): return x + y print(reduce(add, l1)) # filter :返回值:布尔 def isEven(data): return data % 2 == 0 res = filter(isEven,l1) print(res) for i in res: print(i)
# 排序案例 a = [3,2,2,3,4,5,32,34] print(sorted(a,reverse=True)) # 排序案例 按绝对值 b = [-1,3,2,3,4,2] print(sorted(b,key=abs,reverse=True))
- 返回函数:可以返回具体值,也可以返回函数
# 返回函数
def fun1():
def fun2():
print("fun2")
return 1
return fun2
fun = fun1()
print(fun())
- 匿名函数
- 装饰器
# 装饰器
import time
def printtime(f):
def wrapper(*args,**kwargs):
print("time",time.ctime())
return f(*args,**kwargs)
return wrapper
@printtime
def hello():
print("hello world")
hello()
- 偏函数
# 偏导数
def int16(x,base=16):
return int(x,base)
print(int16("12345"))