版权声明: https://blog.csdn.net/qq_41548574/article/details/82468302
attention:高阶函数即将函数 当作参数的函数
map:对于可迭代序列中的每一个值作用以函数所代表的操作
1:函数需要有一个参数一个返回值
def funA(n):
return n * 10
l1 = [1,2,3,4,5,6,7,8]
l3 = map(funA,l1)
for i in l3:
print(i,end = " ")
>>>10 20 30 40 50 60 70 80
Point:需要对列表等可迭代序列的每一个值都进行相同的操作时使用
reduce:将可迭代序列以某种形式聚集成一个值或者字符串
1:函数需要有两个参数
2:函数有一个返回值
3:reduce位于funcltools模块下
from functools import reduce
def funC(x,y):
return x * y
sum = reduce(funC,[1,2,3,4,5])
print(sum)
>>>120
Point:对一组数字求和或者是一串字符的相加
filter:过滤掉不需要的值
1:函数有一个参数
2:函数返回值为布尔值
# 定义一个判断参数是否大于100
def choice(n):
return n > 10
list1 = [1,2,11,12]
# 对list1进行过滤并且按照从小到大的顺序排列
rst = sorted(filter(choice,list1))
for i in rst:
print(i)
>>>11 12
Point:过滤掉不需要的值时使用
collections.defaultdict:创建一个字典,当索引的键不存在时,返回函数返回的值
1:匿名函数
import collections
def fun():
if 1:
return "sds"
dl = collections.defaultdict(fun)
dl["one"]=1
dl["s"]
>>>sds
Point:目测无实际用处,setdefault完全可以替代