前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Python的lambda、map和filter函数

如何使用Python的lambda、map和filter函数

作者头像
fanjy
发布2022-06-04 10:10:17
2K0
发布2022-06-04 10:10:17
举报
文章被收录于专栏:完美Excel完美Excel

标签:Python与Excel,pandas

Python lambda函数,又称匿名函数,与我们使用def…语句创建的函数不同,可以命名函数,lambda函数不需要名称。当需要一个快速且不需要经常重复使用的(通常是一个小的)函数时,它非常有用。单独使用Lambda函数可能没有太多意义。lambda函数的价值在于它在哪里与另一个函数(例如map()或filter())一起使用。

lambda函数介绍

lambda函数:

  • 不需要名字
  • 可以接受任意数量的参数
  • 仅返回1个表达式

让我们看一个普通def函数与lambda函数的示例。我们创建一个函数来计算一个值的平方。

图1

lambda是匿名函数。在上面的示例中,我为它指定了一个名称lambda_sq,但是lambda函数语法实际上不需要名称。

lambda 参数: 表达式

map()函数介绍

map()函数基本上对迭代器(例如列表或元组)中的每个项运行特定的函数。例如,计算1-10之间数字的平方。首先创建一个平方函数,它返回给定数字的平方。然后,创建一个包含从1到10的数字的列表。注意,下面的代码输出——a是一个map对象,它是一个迭代器,可以使用list(a)将其转换为一个列表。

图2

在本示例中,必须预先定义一个计算数字平方的函数。假设这个square()函数只被map函数使用一次,然后就不再使用了。在这种情况下,最好使用lambda函数来计算平方。下面是使用lambda函数的相同示例。

图3

filter()函数介绍

filter()函数类似于map(),然而,map()在一个迭代器上执行一个特定的函数,并返回该迭代器中的每个元素。而filter()只返回一个函数返回True的元素。让我们看一个例子,有一个包含数字1-20的列表,只想返回奇数。首先,我们创建一个包含1-20的值的列表。

图4

然后,让我们定义一个函数来检查输入是否为奇数,如果给定的数字为奇数,该函数将返回True。

图5

现在让我们先用map()函数试试,看看我们得到了什么。

图6

正如所料,map()函数接受is_odd(),并应用于每一项(1-20),返回的值是一个包含True或False的迭代器,这是is_odd()返回的值。

当我们使用filter()替换map()时,我们得到的是:

图7

同样,这应该是filter()函数“筛选”列表并返回is_odd()返回为True的元素。

了解了lambda、map和filter,下一步做什么?

pandas数据框架中的任何列(即pandas系列)都是迭代器,因此可以在pandas数据框架上使用上述相同的技术!后续我们将讲解如何创建一些复杂的计算列。

注:本文学习整理自pythoninoffice.com。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档