专栏首页玄魂工作室如何学Python 第十四课 lambda和lambda操作符,另一些列表操作

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

第十四课 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……

总结

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

本文分享自微信公众号 - 玄魂工作室(xuanhun521),作者:玄魂工作室李三思

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python爬虫之urllib模块1

    Python爬虫之urllib模块1 本文来自网友投稿。作者PG,一个待毕业待就业二流大学生。玄魂工作室未对该文章内容做任何改变。 因为本人一直对推理悬疑比较感...

    用户1631416
  • 如何学python-第三课 基础字符串操作

    在上一篇文章中,我们学习了有关变量和输出的一些基础知识。大家应该还记得在上一篇文章中出现的字符串类型(string)吧!说白了,string类型其实就是一堆单词...

    用户1631416
  • 看代码学安全(12)误用htmlentities函数引发的漏洞

    原文链接:https://zhuanlan.zhihu.com/p/47353814

    用户1631416
  • 香香的xss小记录(一)

    0x00 前言 总结的一些xss的技巧(可能会持续更新),愿大佬勿喷,还有什么方法,大佬记得分享啊。有什么看不惯的错误请在本文留言,谢谢。 0x01 我认为最...

    ChaMd5安全团队
  • 深度时空3D卷积神经网络用于交通预测

    《Deep Spatial–Temporal 3D Convolutional Neural Networks for Traffic Data Forecas...

    深度学习与交通大数据
  • 常见的Web安全漏洞及测试方法介绍

    Web应用一般是指B/S架构的通过HTTP/HTTPS协议提供服务的统称。随着互联网的发展,Web应用已经融入了我们的日常生活的各个方面。在目前的Web应用中...

    小老鼠
  • 常见的Web安全漏洞及测试方法介绍

    Web应用一般是指B/S架构的通过HTTP/HTTPS协议提供服务的统称。随着互联网的发展,Web应用已经融入了我们的日常生活的各个方面。在目前的Web应用中,...

    数澜科技
  • 李佳担任谷歌 AI 中国中心负责人:改善人类生活需要 AI,而 AI 需要「四步走」

    AI 科技评论按:12 月 13 日,谷歌开发者大会 2017 在上海召开,多名谷歌工程师和重量级嘉宾登台演讲,宣布了许多振奋人心的消息,美国工程师的中文演讲也...

    AI科技评论
  • 深度 | 辛普森悖论:如何用同一数据证明相反的论点

    想象一下,你和你的小伙伴正在努力寻找一个完美的餐厅,以便愉快的享用晚餐。我们清楚这个过程可能会花费数小时去争论,你会找到现代生活的便利之处:在线评论。通过在线评...

    机器之心
  • 《实战案例分享》关于语音识别的功能实现分析(二)---语义解析

    前面我们刚刚介绍了语音识别的第一步《《实战案例分享》关于语音识别的功能实现分析(一)---结构化思维》,这一章我们接着上次的内容来看一下语义的解析。

    Vaccae

扫码关注云+社区

领取腾讯云代金券