一、定义

把函数作为参数传入

# 示例:求平方
# 法一:一般
def func(x):
    return x**2
print(func(2))  # 4

# 法二:高阶函数
def func1(x,f):
    return f(x)
print(func1(2,func))  # 4

二、内置高阶函数

map(function,list)

传入的函数单独作用到list的每一个变量中

list1 = [1, 2, 5, 9]
def func1(x):
    return x**2
# map(function,list)
result = map(func1, list1)
print(result)  # <map object at 0x000001D4E99E94C0>
print(list(result))  # [1, 4, 25, 81]
reduce(function,list)

function至少有两个传入参数,函数计算结果继续与下一元素做累计运算

 

import functools
list2 = [1,2,3,4]
def func2(a,b):
    return a*b
result2 = functools.reduce(func2,list2)
print(result2)  # 24

 

filter(function,list)

过滤不符合function条件的元素

 

list3 = [1,2,3,4]
def func3(x):
    return x%2==0
result3 = filter(func3,list3)
print(list(result3))  # [2, 4]

 

 

posted on 2020-03-26 21:51  孤岛蓝鲸  阅读(237)  评论(0编辑  收藏  举报