iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >都应该了解的Python函数式编程
  • 340
分享到

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

Python编程函数式 2023-05-14 20:05:55 340人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

函数式编程(Functional Programming)或者函数程序设计,是一种编程范型。它将计算机运算视为数学上的函数运算,并且避免使用程序状态以及变量对象。以上只是简单的函数式编程的概念,我们只需简单了解即可。在 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函数式编程的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 都应该了解的Python函数式编程

本文链接: https://www.lsjlt.com/news/205357.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 都应该了解的Python函数式编程
    函数式编程(Functional Programming)或者函数程序设计,是一种编程范型。它将计算机运算视为数学上的函数运算,并且避免使用程序状态以及变量对象。以上只是简单的函数式编程的概念,我们只需简单了解即可。在 Python 中,函...
    99+
    2023-05-14
    Python 编程 函数式
  • 何时应该在golang中使用函数式编程?
    函数式编程是一种关注使用函数作为关键构造块的编程范例。在 go 中使用函数式编程特别适合于流式处理、并发编程和测试等场景。通过使用函数式语法,可以实现对字符串列表等数据结构的高效操作,例...
    99+
    2024-05-03
    golang 函数式编程 代码可读性
  • golang函数的函数式编程应用
    在 go 中,函数式编程通过 lambda 表达式、高阶函数和函数组合实现。lambda 表达式允许定义匿名函数,高阶函数接受函数作为输入或返回值,函数组合可以组合多个函数创建新函数。实...
    99+
    2024-04-28
    golang 函数式编程 字符串数组
  • Python 函数式编程
    lambda表达式 以lambda开头 紧跟一定的参数(如果有的话) 参数后用冒号和表达式主题隔开 只是一个表达式,所以,没有return # 计算一个数字的100倍数 stm = lambda x: 100 * x stm(89...
    99+
    2023-01-30
    函数 Python
  • JavaScript 开发者是否应该了解 Python 异步编程?
    JavaScript 和 Python 都是非常流行的编程语言,尤其是在 Web 开发领域。在现代 Web 应用程序中,异步编程已经成为了标配。在 JavaScript 中,我们通常使用 Promise、async/await 等异步处理技...
    99+
    2023-10-30
    异步编程 unix javascript
  • Python 函数式编程,看这一篇就够了!
    本文对 Python 中的函数式编程技术进行了简单的入门介绍。头等函数在 Python 中,函数是「头等公民」(first-class)。也就是说,函数与其他数据类型(如 int)处于平等地位。因而,我们可以将函数赋值给变量,也可以将其作为...
    99+
    2023-05-14
    Python 函数式编程
  • 一文带你了解Java中的函数式编程
    目录概述背景函数式的价值新旧对比Lambda 表达式方法引用Runnable 接口未绑定的方法引用构造函数引用函数式接口基本类型非基本类型多参数函数式接口高阶函数闭包函数组合柯里化总...
    99+
    2023-05-14
    Java函数式编程 Java函数编程
  • 函数式编程在 Python 日志处理中的应用?
    函数式编程在 Python 日志处理中的应用 随着大数据时代的到来,日志数据的处理成为了一项重要的任务。Python 作为一种高效、易学的编程语言,被广泛应用于日志处理领域。在日志处理过程中,函数式编程成为了一种越来越流行的编程范式,它可以...
    99+
    2023-07-22
    日志 分布式 函数
  • Python函数式编程之返回函数实例详解
    目录看代码:用filter函数来计算素数用Python高阶函数来实现这个算法:高阶函数实现打印小于100的素数:总结 高阶函数除了可以接受函数作为参数外,还可以把函数作为结...
    99+
    2024-04-02
  • Java函数式编程怎么应用
    今天小编给大家分享一下Java函数式编程怎么应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java 根据常用需求场景的用...
    99+
    2023-07-04
  • 详解Java8函数式编程之收集器的应用
    目录收集器收集器应用将流转换成其他集合转换成值数据分块数据分组字符串组合收集器使用流的其他操作总结收集器 收集器是一种通用的、从流生成复杂值的结构。可以使用它从流中生成List、Se...
    99+
    2023-05-15
    Java8编程 Java8函数式编程 Java8收集器
  • Python函数式编程中itertools模块详解
    目录容器与可迭代对象count() 函数cycle 函数repeat 函数enumerate 函数,添加序号accumulate 函数chain 与 groupby 函数zip_lo...
    99+
    2024-04-02
  • 详解Python函数式编程之装饰器
    目录一、装饰器的本质:函数闭包(functionclosure):二、装饰器使用方法:保留函数参数和返回值的函数闭包:三、多个装饰器的执行顺序:四、创建带参数的装饰器:总结一、装饰器...
    99+
    2024-04-02
  • Python函数式编程之闭包
    -------------------------函数式编程之*******闭包------------------------ Note: 一:简介 函数式编程不是程序必须要的,但是对于简化程序有很重要的作用。 Python...
    99+
    2023-01-30
    函数 Python
  • JavaScript中的函数式编程怎么应用
    本文小编为大家详细介绍“JavaScript中的函数式编程怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中的函数式编程怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。JavaS...
    99+
    2023-06-27
  • Python函数式编程是什么
    这篇文章将为大家详细讲解有关Python函数式编程是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。函数范式在命令式范式中,通过为计算机提供一系列指令然后执行它们来完成任务。在执行这些指令时,可以改变某...
    99+
    2023-06-29
  • Python-函数式编程介绍 (上)
    1、代码的组织结构不清晰,可读性差 2、实现重复的功能时,只能重复编写实现功能的代码,代码繁多,耗费时间精力 3、假如需要部分功能的扩展或者更新时,需要找出所有实现此功能的地方,一一修改,无...
    99+
    2023-01-31
    函数 Python
  • 什么是python函数式编程
    python函数式编程是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的。但python对函数式编程只提供部分支持,且python中允许使用变量,所以python不是不...
    99+
    2024-04-02
  • python函数式编程的示例分析
    这篇文章给大家分享的是有关python函数式编程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗...
    99+
    2023-06-14
  • golang函数式编程与其他编程语言的函数式编程的比较
    go 中的函数式编程支持不可变性、纯函数和递归等概念,提供了函数作为第一类值、闭包和延迟求值等特性。与 java 和 javascript 相比,go 中的 fp 可选不可变性,纯函数受...
    99+
    2024-05-03
    golang 函数式编程 作用域 代码可读性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作