高阶函数
这里使用的是python3.6版本
高阶函数:就是把函数当成参数传递的一种函数;
示例:
def add(x,y,function): return function( x)+ function( y) print (add(-3,5,abs))注解:
1.调用add函数,分别执行abs(-3)和abs(5),分别计算出他们的值
2.最后在做和运算,最终结果输出是8
map()函数
-
格式:
map(func, iter)
-
说明:
-
接收两个参数:一个函数和一个可迭代对象
-
返回值:返回一个生成器
-
生成器内容是将func依次作用域iter每个元素的处理结果
-
示例:
def func(x): return x * x print map(func,[1,2,3,4,5]) 注解: 1.list里的每个元素都会走一遍f(x)方法 2.输出结果是[1,4,9,16,25]
filter( )函数
-
格式:
filter(func, iter)
-
说明:
-
参数是一个函数和一个可迭代对象
-
返回一个生成器
-
将func依次作用于iter中的元素,返回值为真的将会保留,为假的将会过滤掉
-
-
示例:
lt = [1, 2, 3, 4, 5]
# 提取偶数
f = filter(lambda x: x%2==0, lt)
print(list(f))注解:lt中数据会走一遍匿名函数就是除以2余数为零,然后filter过滤符合要求(偶数)的打印出来,不符合要求的过滤掉
输出结果为 2,4
reduce()函数
-
格式:
reduce(func, iter)
-
说明:
-
接收两个参数,一个函数和一个可迭代对象
-
首先取前两个元素作为func的参数,计算完的结果与第三个元素继续使用func处理,直至结束
-
返回处理的最后结果
-
示例:
from functools import reduce
lt = [1, 2, 3, 4, 5]
# 求和
# s = reduce(lambda x,y: x+y, lt)
# 转换为12345
s = reduce(lambda x,y: x*10+y, lt)
print(s)输出结果为12345
sorted()函数
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted 语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
- iterable -- 可迭代对象。
- cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
示例:
print(sorted([1,5,9,8,3]))输出结果为 [1,3,5,8,9]