查看上一节:递归的练习课程
高阶函数
Python支持函数式编程,当然也是支持高阶函数的。
函数式编程:在Python中,函数是一等对象
一等对象一般都会具有如下特点:
① 对象是在运行时创建的
② 能赋值给变量或作为数据结构中的元素
③ 能作为参数传递
④ 能作为返回值返回
高阶函数:
接收函数作为参数,或者将函数作为返回值的函数是高阶函数;
当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数。
高阶函数至少要符合以下两个特点中的一个:
① 接收一个或多个函数作为参数
② 将函数作为返回值返回
示例: 定义一个函数,可以将列表中的所有的偶数,保存到一个新列表中并返回、
代码展示:
# 创建一个列表
l = [1,2,3,4,5,6,7,8,9,10]
def fn( lst) :
'''
fn()函数可以将指定列表中的所有偶数获取出来,并保存到一个新列表中返回
参数:
lst:要进行筛选的列表
'''
# 创建一个新列表
new_list = []
# 对列表进行筛选
for n in lst :
# 判断n的奇偶
if n %2==0 :
new_list.append(n)
# 返回新列表
return new_list
def fn(l) #调用函数,并将列表l传进去
执行结果为:
这就获取到了列表l的所有偶数。这就是一个普通的函数。接下来介绍高阶函数是怎样的,高阶函数可以接收函数作为参数,当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数。
取出所有的偶数、奇数和大于5的数等更多的功能,这就要将这个函数扩展一下了。
代码展示:
# 创建一个列表
l = [1,2,3,4,5,6,7,8,9,10]
# 定义一个函数,用来检查一个任意的数字是否是偶数。
def fn2(i) :
if i % 2 == 0 :
return True
return False
# 这个函数用来检查指定的数字是否大于5
def fn3(i):
if i > 5 :
return True
return False
# 这个函数可以将3的倍数取出
def fn4(i):
if i % 3 == 0 :
return True
return False
def fn(func , lst) :# 定义高阶函数fn
# 创建一个新列表
new_list = []
# 对列表进行筛选
for n in lst :
new_list.append(n)
# 返回新列表
return new_list
#此时就可以随意调用不同的函数来获得不同的结果了,
#只需要改变高阶函数fn的两个参数即可。
print(fn(fn4 , l))#此时调用的是fn4,列表是l,即意味着取出l列表中所有能被3整除的数。
执行结果为:
点击查看配套视频教程
获取更多内容请订阅Python学习站官方技术圈!