高阶函数 | Python从入门到精通:高阶篇之十三

简介: 高阶函数可以接收函数作为参数,或者将函数作为返回值的函数;当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数。

查看上一节:递归的练习课程

高阶函数

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传进去

执行结果为:
image.png
这就获取到了列表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整除的数。

执行结果为:
image.png

点击查看配套视频教程

获取更多内容请订阅Python学习站官方技术圈!

相关文章
|
2天前
|
算法 物联网 数据库
Python 物联网入门指南(一)(4)
Python 物联网入门指南(一)
15 3
|
2天前
|
物联网 Linux 网络安全
Python 物联网入门指南(一)(3)
Python 物联网入门指南(一)
15 4
|
2天前
|
网络协议 物联网 Linux
Python 物联网入门指南(一)(2)
Python 物联网入门指南(一)
10 1
|
2天前
|
物联网 机器人 异构计算
Python 物联网入门指南(一)(1)
Python 物联网入门指南(一)
11 2
|
7天前
|
机器学习/深度学习 数据采集 数据可视化
利用Python进行历史数据预测:从入门到实践的两个案例分析
利用Python进行历史数据预测:从入门到实践的两个案例分析
21 1
|
12天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
13天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
|
15天前
|
Python
【Python21天学习挑战赛】-入门必备
【Python21天学习挑战赛】-入门必备
|
18天前
|
存储 Python
python入门指南
python入门指南
23 0
|
19天前
|
机器学习/深度学习 自然语言处理 算法
利用Python进行情感分析:从入门到实践
【4月更文挑战第24天】 在数字化时代,文本数据无处不在。理解这些文本背后的情绪倾向对于品牌管理、市场研究乃至政治分析都至关重要。本文将引导读者通过Python编程语言实现基本的情感分析任务,涵盖从预处理步骤到模型训练和结果解释的全过程。我们将使用流行的自然语言处理库NLTK和机器学习框架scikit-learn来构建一个简单的情感分析模型,并探索如何将其应用于实际场景中。