python极简教程生成器和匿名函数
生成器01 什么是生成器?
记住两个关键: 生成器是一种特殊的函数方法。 意味着它和函数(def)密不可分。 基于上一点, 只要函数中出现yield关键字,就是生成器函数 。
初学的你,还是太难理解? 02 通俗的讲解
你可以将生成器理解为一个盒子,你可以向这个盒子里随意添加元素,当你需要的时候,再取出来用。
请看下面的例子: # 普通函数 def func(): return 1 f = func() print("函数返回值:",f) ->函数返回值:1 print("函数返回值的类型:",type(f)) ->函数返回值的类型: # 生成器 def gen_func(): yield 1 yield 2 g = gen_func() print("生成器对象:",g) ->生成器对象: print("生成器对象的类型:",type(g)) ->生成器对象的类型: # 读取生成器对象的值,因为生成器也是一个迭代器,实现了python的迭代协议(即实现了__iter__方法) for i in g: print("生成器对象的值:",i) ->生成器对象的值: 1 ->生成器对象的值: 2 03 生成器到底有什么用?
作用:惰性求值(一边循环一边计算的机制),节省性能 04 生成器的常见用途?读大文件 网络爬虫 scrapy 框架 协程
举个例子:斐波那契数列(0,1,1,2,3,5...),打印斐波那契数列前50个元素 # 不使用生成器,会消耗大量内存 def fib(idx): res=[] n, a, b = 0, 0, 1 while n < idx: res.append(b) a, b = b, a+b n += 1 return res res = fib(100) print(res) # 使用生成器,可节约大量内存 def gen_fib(idx): n, a, b = 0, 0, 1 while n < idx: yield b a, b = b, a+b n += 1 for i in gen_fib(100): print(i) 匿名函数01 什么是匿名函数?
当: 函数实现比较简单 函数不需要被多个地方调用 懒得给这个函数起名字
时,我们可以使用匿名函数。
初学的你,还是太难理解? 02 通俗的讲解
你想实现一个求x的平方的函数,但是这个函数太简单,不值得专门def定义,同时,你忘记了平方的英文如何拼写,要是命名成 "pingfang",又显得自己太low,于是乎,你可以不给这个函数起名字,还能实现它。这就是匿名函数lambda表达式。
比如:求一个数的平方 # 不用 lambda 表达式 def square(x): return x * x print(square(2)) # 使用 lambda 表达式 # 写法:lambda 返回值:计算表达式 s = lambda x: x * x print(s(2)) 一如既往,做个总结
01 如果你是初学者,可以先不掌握生成器和匿名函数,待学成python后,再行琢磨;
02 在实际工作中,生成器和匿名函数的使用频次,相对较高,并且在面试中是高频问点。
电商取缔菜市场后会是什么后果?衣食住行是民生最基础的需求,年几十万亿的规模,让无数互联网企业前仆后继,哪怕是撞得头破血流也在所不惜,让资本市场为之疯狂,动辄几十亿几百亿砸进去,烧起来一点也不心疼,都是因为源于一
联想,你欠倪光南们的可不仅仅是这些最近看了张捷教授的视频,终于知道联想之所以能称为联想最根本的原因是什么没有倪光南院士和他的联想汉卡以及联想输入法,联想可能都不能称之为联想。在计算机引入中国的时候,它的输入与输出只
快手业务转型阵痛商务人员业绩不达标当月离职与隔壁长视频代表企业爱奇艺裁员2040的消息一起被市场关注的,还有短视频领域新晋巨头快手裁员的传闻,同样被互联网圈热议。一名快手的商务人员向第一财经记者确认了传闻的真实性(公司)北
物联网学习物联网如何为双十二买单?学到牛牛作者学到牛牛刚刚过去的双十二购物节又一次席卷了大家的钱包,当然也包括小编的。不知道有没有小伙伴和小编一样,忍过了双十一,但终究还是摆在了双十二的石榴裙下。以前的网络购物之后,我们收
某想和某为的恩怨司马喷某想对不对为何一桩旧案,会引发如此大的关注?原因之一,当然是5G标准的重要性。信道编码是5G通信标准中重要的组成部分之一,对于芯片复杂度,终端成本,功耗,以及专利费用都有很大影响。所以各个公
华为任正非的身价究竟有多高?其实任老一直在富豪榜上任正非的身价究竟有多高?任正非从2011年起就进入了福布斯中国富豪榜,当时他的排名是92位,之后他年年入选富豪榜,到了2018年,任正非的身价是205。6亿元,排名83位,名次还有
vivoOPPO华为的千元机值得买吗?值不值得买,要看需求。这几家的手机性价比不高,但是质量很稳。而且每款千元机还有各自的特点,比如大电池之类的。如果是线下机的话,还能讲讲价,售后也比较多,所以这个还是要看需求。这三个
机器人控制系统,都是采用哪家?国内有专门做机器人控制系统的企业吗?工业机器人控制系统是机器人的大脑。通俗的理解工业机器人控制系统就是一个可以解析运动算法的操作系统。在控制系统之上搭建各类应用,例如应用于焊接的焊接软件包,应用于码垛的码垛软件包,应
华为和联想的不同?联想和华为两种截然不同的发展路线,任正非华为30年坚持聚焦在主航道,抵制一切诱惑坚持不走捷径,拒绝机会主义,踏踏实实,长期投入,厚积薄发坚持以客户为中心,以奋斗者为本,坚持自我批判
一加8周年,首次面向用户推出盲盒产品可获得2022年新机等IT之家12月14日消息,一加方面今日宣布,为庆祝一加8周年特开启无畏无限线下活动,今日起至12月28日,用户可在线下收集盲盒,首个集齐的用户可获得2022年限定新机全家桶。除此之
名单超长!华为官宣提前完成既定产品HarmonyOS2正式版升级计划其实根据此前华为官方公布的数据来看,鸿蒙HarmonyOS2对于其既定计划更新产品的升级速度远比之前官方公布的更新计划要快的多。日前,华为官方也正式发布公告证实了这一推测。日前,华