前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学Python 第十四课 lambda和lambda操作符,另一些列表操作

如何学Python 第十四课 lambda和lambda操作符,另一些列表操作

作者头像
用户1631416
发布2018-04-11 17:02:07
6010
发布2018-04-11 17:02:07
举报
文章被收录于专栏:玄魂工作室玄魂工作室

第十四课 lambda和lambda操作符,另一些列表操作

上节课我们介绍了一些列表的高级使用方法。在本节,我们更进一步,讨论一下lambda和lambda操作符。(嗯,我不会讨论戈登弗里曼的。。。)

我会先介绍lambda并给出一个例子,然后挨个介绍操作符。

什么是lambda?

Lambda可以帮你快速构建起简单的函数。如果你不了解什么叫做函数,请回头看看第十课。

平时我们创建函数的时候,都需要先定义,然后再设计好这个函数要返回什么东西。Lambda表达式可以简化这一过程,把一切浓缩进一行代码里;有了lambda,我们就可以告别过去繁琐的函数创建过程。来一起看个例子。

使用Lambda

在这个例子中,我们会先用传统方式创建一个函数,这个函数会返回传入参数的二倍。然后用lambda创建一个具有相同功能的函数。

传统方式:

Lambda方式:

可以看到,lambda表达式必须被赋值给某个变量才能发挥作用;然而这也比定义一个新函数要快得多。

使用lambda表达式要求我们先输入lambda,然后是需要输入的参数,最后是返回的值。

Lambda操作符

我们来简要介绍一下lambda操作符。

fliter() - 这个可以被用来过滤原有的list,并把过滤结果放进新的list里。

map() - 这个可以同时对list里的所有元素进行操作,并以列表方式给出返回值

reduce()- 这个可以队列表顺序执行算术运算

小提示:这些操作符也可以被单独当成函数使用,但是我们通常看到它们和lambda表达式一起使用。下面我们分别单个介绍一下

filter操作符

我们来说说如何使用filter()操作符。这个操作符可以用来过滤(filter,如它的名字一样)现有列表里的内容,并把符合要求的放进新列表里。我们会借助range()来完成演示。

filter接受两个参数,第一个是lambda表达式提供的过滤条件,第二个是要进行过滤的现有列表。最后,filter返回一个符合条件的列表类型。

map操作符

如果我们想把列表里的所有元素都进行某一个操作,可以用map操作符。我们依旧用range()生成的列表作为待操作的列表。

在上面的操作中,range(0,51)所返回的列表中的每一个元素都被乘上了2.

reduce操作符

reduce操作符要比上面两个难理解一些。它对列表进行顺序的迭代。为了更好理解,我们这次不使用range()。在这个示例中,我们把列表里的所有元素相加。下面是用于演示的list:

接下来进行reduce操作。

当我们进行reduce操作的时候,会从0开始,0+1得到1,然后1+2得到3,然后3+3得到6,6+4得到10……

总结

今天我们学的东西有点多,而且有一部分不是太好理解。希望大家对于各种概念和语法还是可以理解的。用好这些东西可以让我们写出更具有效率、可读性更高的代码。前提是,你在恰当的地方使用他们。

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

本文分享自 玄魂工作室 微信公众号,前往查看

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

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

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