您可能不了解的3大Python功能

哈Ha!我向您介绍了DarioRadečić撰写的文章“您可能不了解的3个最热门的Python函数”的翻译。

作为21世纪最流行的语言之一,Python当然具有许多有趣的功能,值得详细探讨。今天将考虑其中的三个,分别从理论上讲,然后再结合实际例子。

图片

我想谈谈这些函数的主要原因是因为它们有助于避免编写循环在某些情况下,周期可能会很昂贵,此外,这些功能将有助于提高速度。

这里是将在本文中讨论的功能:

1. map()
2. filter()
3. reduce()

即使您已经听说过这些功能,通过多一些理论和示例来增强知识也没有错。

因此,事不宜迟,让我们开始吧!

地图()


map()函数将另一个函数以及某个数组作为参数。这个想法是对数组中的每个元素应用一个函数(作为参数传递)

派上用场有两个原因:

  1. 您不需要编写循环
  2. 比循环快

让我们看看它的实际作用。我将声明一个函数“ num_func()”,该函数将单个数字作为参数。此数字是平方,可被2整除,并按原样返回。注意,这些操作是任意选择的,您可以在函数内部执行任何操作:

图片

现在,我们声明一个数字数组,我们要对其应用“ num_func()”。请注意,“ map()”本身将返回显示对象,因此您需要将其转换为列表:

图片

看起来过程已成功完成。这里没有革命性的东西,但是在可能的情况下最好避免循环。

过滤器()


这是另一个不错的功能,可以节省您的时间-无论是编写还是执行。顾名思义,其思想是仅将满足特定条件的那些元素存储在数组中

与“ map()”一样,我们可以预先声明一个函数,然后将其与可迭代对象(例如,列表)一起传递给“ filter()”。

让我们看看它的实际作用。我进一步声明了一个函数“ more_than_15()”,顾名思义,如果指定为参数的元素大于15,该函数将返回“ true”:

图片

接下来,我们声明一个数字数组,并将它们作为第二个参数传递给函数“ filter()“:

图片

不出所料,只有三个值可以满足此条件。再一次,这里没有什么革命性的东西,但是看起来比周期要好得多。

降低 ()


现在“ reduce()”。它与前两个略有不同。首先,我们需要从functools模块导入它。主要思想是,它将将此函数应用于元素数组,结果将返回单个值

最后一部分至关重要-“ reduce()”不返回元素数组,它始终返回单个值。让我们看一下将这个概念具体化的图表:

图片

这是在图表不是100%清晰的情况下编写的逻辑:

  1. 5加10,结果15
  2. 15加到12,结果27
  3. 27加到18,结果是45
  4. 45加到25,结果是70

70是返回的值。首先,从代码实现开始,让我们从functools模块中导入reduce函数,并声明一个返回两个数字和的函数

图片

现在,我们可以返回代码中的图表,并确保一切正常进行:

图片

在进入注释部分之前,我很清楚还有其他汇总列表项的方法。这是演示功能如何工作的最简单示例。

离开之前:


我希望您可以在日常生活中以某种方式使用这三个功能。速度的提高可能并不明显-它取决于您使用的数据量-但使用更少的循环代码看起来会更好。

如果您还有其他示例,请随时在评论部分中分享。

谢谢阅读。

All Articles