资讯专栏INFORMATION COLUMN

Pythonlambda变量阿姨级使用方法

89542767 / 188人阅读

  文中与你一起探寻Python中的lambda变量,使你以有限的时间搞清楚这一函数的基本原理。也可以通过碎片化时长夯实这一变量,使你在解决操作过程中更有效


  你就应该听过,运用Python,能够让你解决一整天的反复任务量,减少到一会乃至较短。此后释放工作时间,科学研究一个更高效率方式方法。更进一步提高工作效率,让运行更出色。这个不是广告宣传,这也是石锤图片。


  一、lambda函数的概念


  lambda函数是Python常用的内置函数,也称为匿名函数。与普通变量比照,它仅有函数体,省去了def和return,促使构造看起来更加精减。其基本上启用词法如下所示:


  lambda[var1[,var2,…varn]]:expression


  [var1[,var2,…varn]]:形式参数,可以看作入参,供关系式应用。


  expression:函数表达式,最终的结果为lambda函数的返回值。


  二、lambda变量案例


  lambda变量与普通变量比照


  定义一个lambda函数,将其赋值给一个变量,通过这个变量间接调用该函数。


  fun_1=lambdaa,b:a*2+b*3
  fun_1(1,2)


  得到结果:


  8


  其中a,b是形式参数,即入参,供表达式a2+b3使用。


  定义一个普通函数,语句如下:


  deffun1(a,b):
  returna*2+b*3
  fun1(1,2)


  得到结果:


  8


  可以发现应用lambda函数和普通函数的区别是少了def和return语句,且lambda函数直接写在了一行,显得更加精简。不过在这里还没有体现出匿名的属性。


  求一个一元二次方程


  在上初中的时候,我们常常可以看到这样一个题目:F(x)=ax^2+bx+c,求当a=2,b=3,c=4时,F(-1)、F(2)、F(5)的值。


  方法一:应用lambda函数求解


  F_x=lambdax:2*x**2+3*x+4
  print(F_x(-1))
  print(F_x(2))
  print(F_x(5))


  得到结果:


  3


  18


  69


  方法二:应用普通函数求解


  defF_x(x):
  return2*x**2+3*x+4
  print(F_x(-1))
  print(F_x(2))
  print(F_x(5))


  得到结果:


  3


  18


  69


  可以发现应用lambda函数和普通函数的求解结果是一样的。


  和高阶函数filter配合使用


  高阶函数filter在后续文章中会详细说明,它主要用来对列表进行过滤,挑选出列表中符合特定条件的值。比如想挑选出数列中3的倍数,语句如下:


  cs_data=list([2,8,11,12,15,6,1,7])
  list(filter(lambdax:x%3==0,cs_data))


  得到结果:


  [12,15,6]


  用常识也可以看出,最后的结果是挑选出了数列cs_data中3的倍数。和高阶函数配合使用时,lambda函数的优点就进一步凸显出来了。这时不需要提前定义一个普通函数,直接在高阶函数内部将lambda函数的结果作为参数传递给高阶函数即可,也真正做到了匿名。


  和sorted函数配合使用


  如果我们想对一个数列按数值的绝对值进行排列,可以应用sorted函数和lambda函数配合实现,语句如下:


  my_list=[3,5,-2,10,-6,8]
  sorted(my_list,key=lambdax:abs(x))

  可以发现得到的结果是按数值的绝对值排序后的数列。


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128814.html

相关文章

  • 异步等待的 Python 协程

    摘要:辅之以事件循环,协程可用于异步处理,尤其是在中。当前支持的协程基于增强型生成器,于版本开始采用。新的特性中,异步还有两种新用途异步内容管理器和迭代器。 现在 Python 已经支持用协程进行异步处理。但最近有建议称添加协程以全面完善 Python 的语言结构,而不是像现在这样把他们作为生成器的一个类型。此外,两个新的关键字———异步(async)和等待(await),都该添加到 Pyt...

    NicolasHe 评论0 收藏0
  • 基于 Node.js 爬虫的数据 API,搭建一套属于自己的 API 数据

    摘要:没想到老师下课点名了,老师李。一哥们答到老师咦,李,你站起来一下这哥们低着脑袋站起来了,老师表格上面写的李是个女的啊这是不知道从哪个角落传来一声讨厌啊,人家就是个女的了啦。 SpliderApi https://github.com/ecitlm/Spl... 基于nodejs 的爬虫 API接口项目,包括前端开发日报、知乎日报、前端top框架排行、妹纸福利、搞笑视频/ 热点新闻资讯 ...

    chenjiang3 评论0 收藏0
  • 学习kafka教程(一)

    摘要:相关概念生产者,就是它来生产叉烧包的饭堂阿姨。所以整个过程可以如下形象的说明饭堂阿姨制作一个叉烧包,消费者就消费一个叉烧包。假设消费者消费叉烧包的时候噎住了系统宕机了,生产者还在生产叉烧包,那新生产的叉烧包就丢失了。 简介 kafka是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点,并已在成千上万家公司运行。 showImg(https:/...

    leiyi 评论0 收藏0
  • vue 实践技巧合集

    摘要:前言本文纯属个人平时实践过程中的一些经验总结,算是一点点小技巧吧,不是多么高明的技术,如果对你有帮助,那么不胜荣幸。由于涉嫌投机取巧,可能会带来一些不符合规范的副作用,请根据项目要求酌情使用。 前言 本文纯属个人平时实践过程中的一些经验总结,算是一点点小技巧吧,不是多么高明的技术,如果对你有帮助,那么不胜荣幸。 本文不涉及罕见API使用方法等,大部分内容都是基于对vue的一些实践而已。...

    Simon 评论0 收藏0
  • vue 实践技巧合集

    摘要:前言本文纯属个人平时实践过程中的一些经验总结,算是一点点小技巧吧,不是多么高明的技术,如果对你有帮助,那么不胜荣幸。由于涉嫌投机取巧,可能会带来一些不符合规范的副作用,请根据项目要求酌情使用。 前言 本文纯属个人平时实践过程中的一些经验总结,算是一点点小技巧吧,不是多么高明的技术,如果对你有帮助,那么不胜荣幸。 本文不涉及罕见API使用方法等,大部分内容都是基于对vue的一些实践而已。...

    wean 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<