选择语言:

www.94808.com

您的位置:www.4808.com > www.94808.com >

函数式编程每一次施行使命

时间:2019-11-26 点击:

  Map 函数对每一个数值进行迭代并发生的成果。取列表一路利用时,Map通过将函数使用于正在input_list中的所有值,将给定列表转换为新列表。

  这个 lambda 函数将获取输入 x 并前往 5x + 2,就像之前的函数一样 f 。可是,有一个问题。Lambda 不是函数的名称。它是一个 Python 环节字,暗示接下来是一个匿名函数。那么我们若何利用它呢?一种方式是给它起一个名字。

  我们将起首利用 lambda 表达式编写转换器函数,该表达式将接管元组做为输入,而且还将前往元组

  一个风趣的例子,当数据由缺失值构成时,filter 函数发生感化。这是一份包含亚洲一些国度的清单。留意良多字符串都是空的。我们将利用 filter 功能来删除这些缺失值。我们将空集做为第一个参数,第二个参数是方才提到的数据列表。

  雷同地,我们能够利用列表推导式来快速确定包含整数列表的最大值,而不是利用 lambda 和 reduce。

  按照,函数式方程是一种函数式示例, 是建立计较机法式布局和根基要素的一种气概。它将计较视为数学函数的评估和避免改变数据和其形态。

  面向对象的编程通过封拆挪动部件来让代码变得易于理解,而函数式编程则通过尽量削减挪动部件来使代码变得易于理解。— Michael Feathers

  现正在让我们利用 Lambda 函数计较不异的表达式。要建立 lambda 表达式,我们输入环节字 lambda,后面输入函数。接下来,我们输入一个冒号,后面是前往值的表达式。

  函数式利用的数据必需是不成变的。这意味着若是我们需要点窜列表中的数据,我们需要新建一个包含更新值的新列表,而不是现有的列表。

  Reduce 功能有点不寻常,从 Python 3 起头,它不再是内置函数。相反,它已被挪动到 functools 模块。 reduce 函数通过将给定列表转换为单个值,通过列表中值从左到左挨次累加并前往一个值。

  列表推导式(list comprehensions) 是一种正在Python 中定义和建立列表的方式。正在大大都环境下,列表理解使我们能够正在一行代码中建立列表,而无需担忧初始化列表或设置轮回。

  map,filter 和 reduce 函数简化了利用列表的工做。取 lambda 表达式一路利用时,它们通过正在一行代码中完成大量工做,有帮于使我们的糊口更轻松。

  我们将 map 函数取 lambda 函数连系利用,将高度列表从 cm 转换为英尺。让我们利用列表推导式来实现不异的成果。

  若是你确实需要,请利用 functools.reduce; 可是,99% 的时间表白 for 轮回更具有可读性。

  Python供给了 lambda,福星彩,filter,map 和 reduce 等功能,能够轻松演示函数式编程的概念。能够从联系关系的 Github 存储库 拜候本文中利用的所有代码.

  Lambda 表达式 - 也称为“匿名函数” - 答应我们正在一行中建立和利用函数。当我们需要一个只能利用一次的短函数时它们很有用。它们次要取 map,filter 和 sort 方式连系利用,我们将正在本文后面讲到。

  写入FP的法式该当是无形态的。无形态的方程式不克不及表达其过去形态。函数式编程每一次施行使命,就像他们第一次施行一样。简而言之,这些函数仅依赖于做为参数传送给他们的数据,而不依赖于外部数据。

  Filter 函数从可迭代元素中构制一个迭代器,而且函数前往合适值。这意味着 filter 函数用于从 list,tuple 或其他数据调集当选择某些数据,因而叫这个名字。

  现正在,让我们看看 Lambda 函数的常见用法,我们不为它指命名称。假设我们列出了前七位美国总统的名单,我们想用他们的姓氏对这份名单进行排序。我们将建立一个提取姓氏的 Lambda 函数,并将其用做排序值。

  它也是 lambda 函数以及函数 map(),filter()和reduce()的替代品。有些人发觉它是一种愈加表现 python 的编写函数的体例,而且发觉它更容易理解。

  FP 依赖于方程,一切都是利用函数来完成的。而且,FP 专注于定义去做什么,而不是施行某些操做。这种函数示例被认为是一级函数式。这意味着函数被视为任何其它对象,我们能够把他们分派给变量或者将他们嵌入其它函数式。

  Reduce 函数能够用单行代码找出整数列表中的最大值。确实正在 Python 中存正在一个内置函数 max(),它也凡是能够用于此目标 max(list_name)。

  现正在让我们看一个演示 lambda 函数取 map 函数一路利用的例子。我们有一个包含 5 小我姓名和高度的元组列表。每个高度都以厘米为单元,我们需要将其转换为英尺。

  世界上有良多种言语,它们能够归类的类别也是如斯。编程示例是一种基于编码气概和言语体例去测验考试把分歧言语分类的路子。编程示例素质上就是一种气概和编程体例。

  Map 函数有两个参数。第一个是函数,第二个是我们的 list ,tuple 或任何其他可迭代对象。这里,map 函数将 volume 函数使用于列表中的每个元素。

  大大都的时候,我们认为 Python 是面向对象言语, 我们以类(classes),对象(objects),和方式(methods)对数据进行模仿。可是,OOP 也有几种替代方案,函数式编程就是此中之一。

  我们起首建立一个lambda函数来测试输入,看它能否大于5。接下来,我们传入数据列表。Filter 函数仅前往函数为准确的数据。再一次,前往值不是列表,而是 filter 对象。必需将此对象传送给列表构制函数才能获得输出。

  Map,Filter 和 Reduce 函数光鲜明显简化了利用列表和其他可迭代数据集的过程。有些人对利用它们有所保留,出格是由于列表推导式似乎更敌对,但它们的用途不容轻忽。前往搜狐,查看更多

  这里要留意的一件主要工作是 map 函数的输出不是列表而是 map 对象,它是成果的迭代器。可是,我们能够通过将映照传送构制列表将其转换为列表。



友情链接:

Copyright 2019-2022 http://www.eflames.cn 版权所有 未经协议授权禁止转载