高阶函数
- 接收一个或多个函数作为参数(不加括号)
- 将函数作为返回值
需求:将一个指定列表中的偶数保存,保存到一个新的列表中返回。
li = [1,2,3,4,5,6,7,8,9,10]
def fn():
# 创建一个新的列表
new_li = []
# 对要筛选的列表进行遍历
for n in li:
# 判断奇偶
if n % 2 == 0:
new_li.append(n)
# 返回新的列表
return new_li
print(fn())
[2, 4, 6, 8, 10]
拓展: 在以上函数内部,新定义一个函数检测任意数的偶数
li = [1,2,3,4,5,6,7,8,9,10]
def fn():
# 定义一个函数用于检测任意数的偶数
def fn2(i):
if i % 2 == 0:
return True
# 创建一个新的列表
new_li = []
# 对要筛选的列表进行遍历
for n in li:
# 判断奇偶
if fn2(n) :
new_li.append(n)
# 返回新的列表
return new_li
print(fn())
[2, 4, 6, 8, 10]
再拓展: 在函数内部再定义一个新的函数,筛选出大于5的数。
li = [1,2,3,4,5,6,7,8,9,10]
def fn():
# 定义一个函数用于检测任意数的偶数
def fn2(i):
if i % 2 == 0:
return True
# 定义一个新的函数,用于筛选出大于5的数
def fn3(i):
if i > 5:
return True
return False
# 创建一个新的列表
new_li = []
# 对要筛选的列表进行遍历
for n in li:
# 判断奇偶
if fn3(n) :
new_li.append(n)
# 返回新的列表
return new_li
print(fn())
[6, 7, 8, 9, 10]
再次拓展:
- 当使用一个函数作为参数的时候,实际上就是将指定的代码传递给了目标函数
li = [1,2,3,