请问这个 Python 迭代器里 next () 定义咋理解( 二 )
在这个手动模拟迭代的过程中,先把可迭代对象转换成迭代器,然后用next方法进行手动迭代,迭代到最后出现StopIteration异常退出。真实迭代的过程就是这样。
关于数据科学更系统、更深入的探讨可进入我们的专栏《Python数据科学之路》:
酱油哥:来吧,一起踏上Python数据科学之路本专栏模仿美剧剧集编排分为五季,第一季:Python编程语言核心基础、第二季:Python数据分析基本工具、第三季:Python语言描述的数学基础、第四季:机器学习典型算法专题、第五季:实战热点深度应用。
■网友
不知道你在说啥.元组的赋值是python的一个"赋值魔法",BEGINNING PYTHON提过如果你是在纠结next()的作用,我也刚刚做了一下实验:class Foo: def __init__(self): print "\initializing.................\" self.a=0 def next(self): self.a+=2 return \u0026#39;*\u0026#39;*self.a def __iter__(self): print "when self.a=%d,__iter__ is called\ "%self.a return selff=Foo()#创建一个迭代器for i in f: if len(i)\u0026lt;12: print i+\u0026#39;\\u0026#39; else: break结果:C:\\Python27\u0026gt;python iter_stuff.pyinitializing.................when self.a=0,__iter__ is called******************************\u0026#39;\u0026#39;\u0026#39;你可以看到:1,f是一个"未来的"字符串的序列,内容是next()返回的东西2,iterator只被创造一次,终身调用ps:__iter__返回的东西必须是self,实例化后,就是f,(f=Foo())一开始,f只是一个,当for,while这些机制触发了next()的时候,next()开始往f=填充数据step 1:step 2:................................\u0026gt;这个掉渣天的序列不如说是一个一次性的log,阅过即焚,除非你找一个东西来记下,不然等迭代器跑到最后,以前的数据你都找不到了\u0026#39;\u0026#39;\u0026#39;
■网友
self.a, self.b = self.b, self.a + self.b即python中的元组赋值,Python会按照位置把右边的对象和左边的目标从左至右相配对。
■网友
self.a, self.b = self.b, self.a + self.b在赋值的时候,是同时赋值的例如 一开始的时候 self.a=0,self.b=1那么在赋值的时候 self.a已经变成1,但是在 self.b=self.a+self.b中的self.a还是0这样就能说清楚了
■网友
抛开类会更清楚:a=0b=1l=def next(L):\tL,L=L,L+L\treturn Lnext(l)
推荐阅读
- 如果你的多肉出现这个长势,要注意这个细节,多肉才会越来越美!
- 『活动』让孩子们欢欢喜喜过新年 这个元旦好有爱!南京聋校举办多种形式庆祝活动
- 免费“单人套餐”背后的故事:爱心让这个冬天不再寒冷
- 夫子庙■“秦淮灯会”“夫子庙小吃”等非遗重点保护 护航夫子庙,这个法明年施行
- 气温■@江苏人,这个周末天气晴!温度缓慢回升,早晚依旧“冻”人
- 黄金时间■黄金时间丨哪种产品最节水?购买产品请注意这个标识!
- 『黄金时间』请认准这个蓝色的标志! 黄金时间丨同行业中用水最少的企业
- 汽车|评测 | 懂你所想,予你所需!依维柯欧胜2021款这个“搭档”可还行?
- 银行高管的薪酬结构图表最新的,请问在哪里可以收集
- 电动车|这个月,原来小编们这么拼
