三周四次课(11月2日)
1. 高阶函数
高阶函数,就是把函数当成参数传递的一种函数,例如:
def add(x,y,f):
return f(x)+f(y)
print(add(-8,11,abs))
输出
19
解释:
1、调用add函数,分别执行abs(-8),abs(11)
2、最后进行和计算
map()
map函数是Python内置的一个高阶函数,他接受一个函数f和一个list,并把list的元素一次传递给函数f,然后返回一个函数f处理完所有list元素的列表,如下所示:
def f2(x):
return x*x
l = [1,2,3,4,5,6]
输出
[1,4,9,16,25,36]
reduce
reduce必须接受两个参数
把可迭代对象的前两个参数作为函数的实参,传入f
把f运算的结果作为第一个实参,可迭代对象的下一个元素作为另一个实参,传入函数中,以此类推
def f(x,y):
return x + y
print(reduce(f,[1,2,3,4,5,],10))
输出
25
解释
计算过程
1+2 =3
3+3=6
6+4=10
10+5 =15
15+10=25
filter()
filter函数是Python内置的另一个高阶参数,filter接受一个函数f和一个list,这个函数f的作用是对么一个元素进行判断,返回True或False,filter根据判断结果自动过滤掉不符合条件的元素,返回符合条件元素组成的新list。
def is_odd(x):
return x%2 == 1
print(filter(is_odd,[1,2,3,4,5]))
输出
[1,3,5] //输出奇数
sorted
对字典进行排序
mm = dict(a=1,b=5,c=4,d=2)
test = sorted(mm)
print(test)
输出
['a','b','c','d'] 只给键值进行排序
mm = dict(a=1,b=5,c=4,d=2)
test = sorted(mm.iteritems(),key=lambda d:d[1],reverse=True)
print(test)
输出
[('b', 5), ('c', 4), ('d', 2), ('a', 1)]
2. 匿名函数
匿名函数是没有名字的函数
iambda 函数是一种快速自定义单行的最小函数,可以用在任何需要函数的地方
常规版本:
def fun(x,y)
return x*y
iambda 版本:
r = lambda x,y:x*y
匿名函数比较简单,但平时使用比较少