一、定义
把函数作为参数传入
# 示例:求平方 # 法一:一般 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]
|