Python 内置高阶函数详细

Python 内置高阶函数详细

什么是高阶函数?

高阶函数是指可以接受函数作为参数或者返回函数作为结果的函数。在 Python 中,高阶函数非常常见,例如 map()filter()reduce() 等。

map()

map() 函数可以对可迭代对象中的每一个元素应用给定的函数,并返回一个新的可迭代对象。它的语法如下:

map(function, iterable, ...)

其中,function 表示要应用的函数,iterable 表示要遍历的可迭代对象。map() 函数返回的是一个 map 对象,可以通过 list() 函数将其转换为列表。

下面是对一个列表进行平方运算的示例:

lst = [1, 2, 3, 4, 5]
squared_lst = list(map(lambda x: x ** 2, lst))
print(squared_lst)

输出结果为:

[1, 4, 9, 16, 25]

filter()

filter() 函数可以从一个可迭代对象中筛选出满足给定条件的元素,并返回一个新的可迭代对象。它的语法如下:

filter(function, iterable)

其中,function 表示应用在每个元素上用于判断的函数,iterable 表示要遍历的可迭代对象。filter() 函数返回的是一个 filter 对象,可以通过 list() 函数将其转换为列表。

下面是对一个列表中进行筛选,保留所有偶数的示例:

lst = [1, 2, 3, 4, 5]
even_lst = list(filter(lambda x: x % 2 == 0, lst))
print(even_lst)

输出结果为:

[2, 4]

reduce()

reduce() 函数可以对一个可迭代对象中的元素依次应用给定的函数,最后将结果汇总为一个值,并返回该值。需要注意的是,reduce() 函数需要导入 functools 模块才能使用。它的语法如下:

reduce(function, iterable[, initializer])

其中,function 表示应用在元素上的函数,iterable 表示需要处理的可迭代对象。如果想要给汇总结果设置一个初始值,可以通过 initializer 参数进行指定。reduce() 函数返回的是一个值。

下面是对一个列表中的所有元素进行累乘运算的示例:

from functools import reduce

lst = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, lst)
print(product)

输出结果为:

120

总结

以上就是 Python 内置高阶函数的详细说明,涵盖了 map()filter()reduce() 三个函数。使用高阶函数可以使代码更加简洁、高效,同时也可以提高代码的可读性和可维护性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 内置高阶函数详细 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • python 如何利用chinese_calendar 获取上一个工作日日期

    要使用 chinese_calendar 库获取上一个工作日的日期,需要按照以下步骤进行: 步骤一:安装 chinese_calendar 库 首先,在终端中使用 pip 安装 chinese_calendar 库: pip install chinese_calendar 步骤二:导入 chinese_calendar 库 在代码中导入 chinese_c…

    python 2023年6月2日
    00
  • python 请求服务器的实现代码(http请求和https请求)

    以下是关于“Python请求服务器的实现代码(HTTP请求和HTTPS请求)”的完整攻略: Python请求服务器的实现代码(HTTP请求和HTTPS请求) 在 Python 中,我们可以使用 requests 模块发送 HTTP 请求。requests 模块支持 HTTP 和 HTTPS 请求。以下是 Python 请求服务器的实现代码(HTTP 请求和 …

    python 2023年5月15日
    00
  • 详解KMP算法以及python如何实现

    详解KMP算法以及Python如何实现 KMP算法是一种字符串匹配算法,它的全称是Knuth-Morris-Pratt算法,是由Donald Knuth、Vaughan Pratt和James H. Morris位计算科学家于1977年联合发明的。KMP算法的主要思想是利用已知信息来避免无效的字符比较从而提高字符串匹配的效率。本文将详细讲解KMP算法的原理实…

    python 2023年5月13日
    00
  • 编写每5分钟执行一次的python脚本

    【问题标题】:write python script that is executed every 5 minutes编写每5分钟执行一次的python脚本 【发布时间】:2023-04-04 06:10:01 【问题描述】: 我需要编写一个在启动时自动启动并在树莓派上每 5 分钟执行一次的 Python 脚本。如何才能做到这一点?特别是,我怎样才能避免让脚…

    Python开发 2023年4月6日
    00
  • 详解Python如何利用turtle绘制中国结

    下面是详解Python如何利用turtle绘制中国结的攻略: 一、前言 turtle模块是Python的一个绘图库,其能够将基本图形如直线、圆、等角三角形等拼接成复杂图形。本文将详细介绍如何利用turtle模块绘制中国结。 二、准备工作 在编写代码前,需要导入turtle模块: import turtle 然后,开启画布 window = turtle.Sc…

    python 2023年6月3日
    00
  • Python 虚拟机集合set实现原理及源码解析

    Python 虚拟机集合 set 实现原理及源码解析 什么是 set set 是 Python 中的一种基本数据类型,用于存储无序、不重复的元素集合。set 的特点是: 无序性:set 中没有元素的顺序关系。 互异性:set 中的元素都是唯一的,重复的元素会被自动忽略。 set 中可以存储任意类型的数据,例如数字、字符串、元组等不可变类型,但是不能存储可变类…

    python 2023年6月7日
    00
  • python3 与python2 异常处理的区别与联系

    Python2和Python3异常处理的区别及联系 在Python编程中,异常处理是一种常见的技术,可以让程序更加健壮且具有可读性。Python2和Python3在异常处理上有所不同,下面将介绍Python2和Python3异常处理的区别和联系。 try/except/else/finally结构 在Python2和Python3中,异常处理的基本结构是一致…

    python 2023年5月13日
    00
  • python sys.stdin和sys.stdout的用法说明

    下面是“Python sys.stdin和sys.stdout的用法说明”的完整攻略。 简介 在 Python 中,sys.stdin 和 sys.stdout 是两个用于输入输出的常用对象。sys.stdin 是系统标准输入流,通常用于从用户的键盘输入数据;sys.stdout 是系统标准输出流,通常用于向终端输出数据。 使用 sys.stdin Pyth…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部