都应该了解的Python函数式编程

函数式编程(Functional Programming)或者函数程序设计,是一种编程范型。

它将计算机运算视为数学上的函数运算,并且避免使用程序状态以及变量对象。

以上只是简单的函数式编程的概念,我们只需简单了解即可。

Python 中,函数式编程主要由几个函数的使用构成:lambda()​, map()​, reduce()​, filter()等。

1.lambda 函数

lambda 函数,又成为匿名函数。lambda 函数只能有一个表达式,而不需要写 return 来返回函数的值。当然,匿名函数也是一个函数对象,同样可以把匿名函数赋值给一个变量。

图片

也可以把匿名函数作为返回值来返回

图片

可以看出,变量 f 就是一个 lambda 函数类型,需要使用​f()来调用该函数。

2.map函数

map 函数接收两个参数,一个是函数,一个是 Interable (可迭代序列),map 函数依次将函数作用到序列的每个元素,并把结果作为新的 Interable 返回。

看一个例子:

图片

一个简单的列表解析,把列表 a 的每个元素都加2,用 map 函数可以写为:

图片

由于 map 函数返回的是一个惰性序列,需要通过​list()等函数来调用它。

虽然上面的代码看起来比直接写 for 循环要复杂,但是当数据量很大的情况下,Python 的 for 效率就不是很高了,而 map 的效率是可以接近 C 语言的。同时代码也简洁很多,简直装X神器。

另一个小例子,把列表中的元素转换为字符串,一条命令

图片

3.reduce函数

它和 map 有些像,不过 map 是用于逐一遍历,而 reduce 函数是用来递归计算的。

一个简单的序列求和

图片

对列表 a 的各个元素依次求和,再看一个自制的int()函数的例子

这是 Python 内置函数 int 的用法

图片

我们通过 reduce 和 map 函数也可以实现如下

图片

先用 map 函数来遍历 23465 这个字符串列表,然后通过 reduce 函数递归应用列表每个元素到 lambda 函数。

4. filter函数

它同样接收一个函数和一个序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False 决定保留还是丢弃该元素。

图片

总结

使用这些函数,不仅可以让我们的代码更加简洁,同时在大数据量或者计算密集时,能够大大提高效率。

以上就是都应该了解的Python函数式编程的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2242713.html

(0)
上一篇 2025年2月26日 21:01:33
下一篇 2025年2月26日 21:01:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Win11 24H2 更新后触摸板失灵的解决思路

    win11 24h2更新后触摸板失灵,主要原因是驱动程序冲突或损坏,也可能是系统设置或硬件问题。解决方法:1. 重启电脑;2. 检查并更新或回滚触摸板驱动程序;3. 检查系统设置中触摸板和电源选项是否禁用;4. 关闭可能冲突的第三方软件;5…

    2025年3月29日
    100
  • 电脑禁止摄像头访问的步骤,Win11 禁用摄像头设备方法

    win11禁用摄像头方法有:1. 在“隐私与安全”-“相机”中设置应用访问权限,灵活但不能完全阻止恶意软件访问;2. 在设备管理器中禁用摄像头设备,简单有效但使用不便;3. 使用注册表编辑器修改摄像头启动状态(不推荐新手操作)。 选择适合自…

    2025年3月29日
    100
  • Win11 怎么关闭定位服务历史记录提升隐私

    彻底清除win11定位服务历史记录需要:1. 关闭系统定位开关;2. 清理系统日志(建议备份系统后系统还原);3. 清理应用缓存(逐个检查应用设置或卸载重装)。 此外,应控制应用的定位权限,并使用安全软件监控定位服务访问,定期备份系统以防数…

    2025年3月29日
    100
  • Win11 怎么关闭诊断数据发送减少隐私风险

    win11诊断数据可通过以下步骤关闭:1. 将“诊断与反馈”设置中的数据级别调整为“基本”;2. 修改注册表,创建hkey_local_machine\software\microsoft\windows\currentversion\po…

    2025年3月29日
    100
  • 电脑禁止鼠标访问的办法,Win11 禁用鼠标设备方法

    win11禁用鼠标的方法有三种:1. 设备管理器禁用设备,简单快捷但可能导致部分程序异常;2. 注册表编辑器修改,彻底但风险高,需谨慎操作并备份注册表;3. 组策略编辑器(专业版及以上)限制安装未签名设备,安全但不能直接禁用已安装鼠标。 选…

    2025年3月29日
    100
  • Linux SecureCRT如何实现脚本自动化

    本文介绍如何在Linux系统中利用SecureCRT实现脚本自动化,以提高工作效率。我们将分别讲解使用VBScript和Python两种方法。 方法一:使用VBScript VBScript结合SecureCRT的CRT.Screen对象,…

    2025年3月29日
    100
  • Linux JS日志如何监控

    本文介绍在Linux系统中监控JavaScript日志的多种方法。 选择哪种方法取决于您的监控需求和技术水平。 基础方法:命令行工具 对于简单的日志监控,命令行工具是快速有效的选择: tail 命令: 实时查看日志文件末尾。使用 -f 选项…

    2025年3月29日
    100
  • SecureCRT如何优化Linux命令行体验

    提升SecureCRT在Linux命令行下的使用体验,您可以尝试以下优化策略: 一、个性化配色方案 获取配色方案: 从网络资源下载您喜欢的.ini格式配色方案文件。配置路径: 将下载的方案文件放置到SecureCRT的配置文件目录,并在“全…

    2025年3月29日
    100
  • SecureCRT如何提升Linux系统性能监控

    本文介绍如何利用SecureCRT优化Linux系统性能监控,提升效率和准确性。 以下方法将帮助您更有效地管理和优化系统运行状态: 一、高效日志管理 自动日志记录: 在SecureCRT中设置自动日志记录功能(“选项”→“会话选项”→“日志…

    2025年3月29日
    100
  • Linux下JS日志分析有哪些技巧

    高效分析Linux环境下的JavaScript日志,掌握以下技巧事半功倍: 命令行利器: 充分利用Linux强大的命令行工具,例如grep、awk、sed、sort和uniq,快速定位和筛选日志信息。 管道技术: 巧妙运用管道(|)连接多个…

    2025年3月29日
    100

发表回复

登录后才能评论