Python中强大的函数: map()、filter() 和 reduce()

概述

Python 包含许多预定义的内置函数,最终用户可以通过简单地调用它们来使用它们。这些功能不仅使程序员的工作更轻松,而且有助于建立一个通用的编码环境。在本教程中,您将了解 Python 的三个最强大的函数:map()、filter() 和 reduce()。

函数式编程的三大支柱是 map、filter 和 reduce 函数。虽然 Python 不完全是一种函数式编程语言,但它确实有很多特性使它如此。本文讨论了 Python 中的 map、filter 和 reduce 函数,以及它们如何对应于函数式编程原则。

函数式编程

使用函数来定义计算的编程范式称为函数式编程。不可更改状态的概念是函数式编程的关键定义特征之一。

计算是通过命令式编程中的语句完成的,这可以说是您已经熟悉的最流行的编程范式。这些命令会影响变量的值,从而影响执行后的计算状态。例如,for 循环可以重复执行一条语句,每次更改变量的值,如下所示:

counter = 0
for i in range(10):
    counter += 1

在循环的每次迭代中,计数器的值每次增加 1 时,计算状态都会发生变化,使其更接近结束状态。

在我们讨论 Python 中的“map()”、“filter()”和“reduce()”函数的示例之前,我们需要了解另一个概念:高阶函数。

高阶函数

在函数式编程中,高阶函数是我们定义计算的主要工具。这些是将函数作为参数并返回函数作为结果的函数。Reduce()、map() 和 filter() 是 Python 中最有用的三个高阶函数。当与更简单的功能配对时,它们可用于执行复杂的操作。

下面的代码示例演示了一个高阶函数。print greeting() 接受两个参数:函数 f 和名称 n,并返回调用 f 的结果。(n)。

def greet(name):
    return "Hello, {}!".format(name)

def print_greeting(f, n):
    print(f(n))

匿名函数

我们在上一节中看到了一个将另一个函数作为参数的函数示例。函数 map()、filter() 和 reduce() 都做同样的事情:它们每个都接受一个函数和一个元素列表,然后返回将函数应用于列表中每个元素的结果。

如前所述,Python 具有内置函数,如 map()、filter() 和 reduce()。Python 的函数式编程特性是通过这些函数启用的。在函数式编程中,唯一决定输出的因素是传入的输入。这些函数可以接受任何其他函数作为参数,也可以作为参数传递给其他函数。现在让我们更详细地了解这些函数中的每一个。

我们有三个主要功能:

  1. 地图()
  2. 筛选()
  3. 减少()

1.map() 函数:

map() 函数是一个高阶函数。如前所述,此函数接受另一个函数和一系列“可迭代对象”作为参数,并在将函数应用于序列中的每个可迭代对象后提供输出。它具有以下语法:

语法: 映射(函数,可迭代对象)

该函数用于定义一个表达式,然后将其应用于“可迭代对象”。用户定义函数和 lambda 函数都可以发送到 map 函数。

用户定义的函数可以发送到 map() 方法。用户或程序员是唯一可以更改这些函数参数的人。

例子

def function(a): 
    return a*a 
x = map(function, (1,2,3,4)) #x是地图对象
print(x) 
print(set(x))

输出

{16, 1, 4, 9}

x 是一个地图对象,如您所见。接下来显示 map 函数,它以“function()”为参数,然后将“a * a”应用于所有 ‘iterables’。结果,所有可迭代对象的值在返回之前都与它们自身相乘。

让我们看看如何在 map() 方法中使用 lambda 函数。

map() 函数中的 Lambda:

没有名称的函数称为 lambda 函数。这些函数经常用作其他函数的输入。让我们尝试将 Lambda 函数集成到 map() 函数中。

例子

tup= (5, 7, 22, 97, 54, 62, 77, 23, 73, 61)
newtuple = tuple(map(lambda x: x+3 , tup)) 
print(newtuple)

输出

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

2.filter()函数:

filter() 函数用于生成在调用该函数时返回 true 的值的输出列表。它具有以下语法:

语法: 过滤器(函数,可迭代对象)

这个函数和 map() 一样,可以接受用户定义的函数和 lambda 函数作为参数。

例子

def func(x):
    如果 x>=3: 
        return x 
y = filter(func, (1,2,3,4))   
print(y) 
print(list(y))

输出

[3, 4]

如您所见,y 是过滤器对象,列表是条件 (x>=3) 的真值集合。

filter() 函数中的 Lambda:

要检查的条件由作为参数提供的 lambda 函数定义。

例子

y = filter(lambda x: (x>=3), (1,2,3,4))
打印(列表(y))

输出

[3, 4]

3.reduce() 函数:

顾名思义,reduce() 函数将提供的函数应用于“可迭代对象”并返回单个值。

减少功能|  python最强大的功能

语法: reduce(function, iterables)

该函数指定在这种情况下应将哪个表达式应用于“可迭代对象”。必须使用功能工具模块来导入此功能。

例子

from functools import reduce

reduce(lambda a,b: a+b,[23,21,45,98])

输出

187

前面示例中的 reduce 函数将列表中的每个可迭代对象一一添加并返回单个结果。

Python 函数 map()、filter() 和 reduce() 都可以一起使用。

🍺 快速总结——Python中强大的函数: map()、filter() 和 reduce()

所以,这篇关于 Python 中的 map()、filter() 和 reduce 函数的文章。我希望你已经清楚地了解了一切。确保你在 map()、filter() 和 reduce() 上练习,因为这个函数在我们使用 python 进行数据分析时非常有用。

👉Python必备开发工具👈

👉精品Python学习书籍👈

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

学习路线


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码【免费获取】

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值