高阶函数(map reduce filter defaultdict)

版权声明: 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完全可以替代

猜你喜欢

转载自blog.csdn.net/qq_41548574/article/details/82468302