登陆注册
71628900000017

第17章 迭代器

在数据结构设计中迭代是一个重要的概念。对于迭代来说,从 Python 的机制中对迭代器提供给收集对象的一个关键行为上可以得到认识。所支持的具体方法就是 dunder next 了,这个方法可以返回收集对象中下一项元素。如果没有下一项元素的话,会抛出一个 StopIteration 例外来说明不能再进行迭代了。

所以很少会去直接部署一个迭代器自定义类,相反更愿意采用生成器这种方法,因为生成器语句可以自动产生抛出迭代器的值。

Python 会自动提供迭代器部署,原因就是只要定义了 dunder len 和 dunder getitem 这两个方法后,自定义类就具备了迭代器功能。

简单示范一个低层迭代器例子:

class SequenceIterator:

“““对序列对象进行迭代的一个迭代器类型。“““

def __init__(self, sequence):

“““把一个序列对象建立成一个迭代器对象。“““

self._seq = sequence

self._k =-1 #确保第一次调用 next()函数时会从第一项元素开始

def __next__(self):

“““返回下一项元素,或者会抛出 StopIteration 例外错误。“““

self._k += 1

if self._k < len(self._seq):

return (self._seq[self._k])

else:

raise StopIteration()

def __iter__(self):

“““为了方便,迭代器必须把自身也看成一个迭代器。“““

return self

同类推荐
  • 我真是个小可爱

    我真是个小可爱

    某天,白染小仙女正在努力打怪的时候,莫名被某个系统绑定了。白染“你是谁?”系统“系统”白染“。。。。。。我为什么会跟你绑定”系统“不知道”白染“!!??那你知道这是哪吗?”系统“不知道”白染“。。。。。。”系统“宿主是否愿意接受绑定A愿意B我愿意”白染“。。。。。。”白染:“那我需要做什么呢?”系统“打怪升级叭”。从此,三千世界又多了一位人形灭世机,白染“我可是一只小可爱呢,你怎么能这么说人家”系统“。。。。。。”
  • 五行闪耀

    五行闪耀

    2022年,五行星球历经六千多年再次运行到近地球轨道,五行余晖照射到地球表面,激发了地球的五行属性,地球的五行灵气慢慢增强,返祖潮降临在一部分炎黄子孙的身体里,他们觉醒了五行灵根。2027年,经过五年的研究开发,人类对五行有了深入的了解,研制出高等级能源和航天飞机的建造材料,估计,到2032年能把航天飞机的飞行速度提高八百倍,那么能用八个月的时间飞到五行星球上空。2030年,人类决定于2032年,2037年,2042年共派出684万人分三批次远征五行星球。
  • 位面逐道

    位面逐道

    身临诸天,修行万界,在不尽的求索中明悟。
  • 快穿修复:男神,我投降

    快穿修复:男神,我投降

    [1V1,甜宠]温柔医仙:药可救人,毒可杀人。你是我的药,亦是我的毒,我的生死在你一念之间。性感男模:在你之前,我的一切奉献给了舞台;有你之后,我的一切属于你。T台上的灯光再美,也不及你半分。酷拽竹马:我很荣幸,与你一起成长,见证你的所有,也伴你一起白头。……顾槿夕(女主):一代女侠、跳脱作家、软萌青梅……待解锁:温柔医仙、性感男模、酷拽竹马……欢迎入坑(PS:不喜勿喷。)
  • 诸天大法官

    诸天大法官

    诸天万界分化、异族恒沙无数人族,居祖庭、掌至尊、号诸天无数元会后,人族大能纷纷归隐失踪万界异族携手大军杀至祖庭吾——司掌三十三天法典定纲常、论刑法。诸,以下犯上,扰乱制法判,灰飞烟灭,即刻行刑!
热门推荐
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 我不存在你的未来

    我不存在你的未来

    她认真仔细的跟他描绘着自己对未来的规划,但她描绘的未来里面,永远没有他。
  • 再战英魂

    再战英魂

    一个人夺舍还算好,十几万人同时夺舍就夸张了,关键还都是普通人。星魂大陆原住民:“NPC是什么?”。玩家:“装的还挺像。”。
  • 玄灵武尊

    玄灵武尊

    圣魂守心,行天地正道。圣堂弟子武之极谨遵正道之学,却遭贼人所陷,陨落断魂崖,心有不甘的他成功转世来到一个新的世界,一个被称作“玄灵大陆”的世界!人们所信奉的只有强者!而武之极的到来也将一个变数带到了这个因为武道而变得疯狂的世界!圣堂之正道能否改变这个世界的混乱,平复这世界的不安?一切就在武之极的手中,或者说在那个名叫靳琰的孩子手中!
  • 一线女法医

    一线女法医

    前一世玩的是死人,这一世验的是死尸……蓝可盈耸耸肩,果断表示这个可以接受。于是某妞开启了一个与前世截然不同的全新人生。有事儿没事儿验验死人。有闲儿没闲儿的撸撸小帅哥。百忙之中,还可以撩撩大帅哥。★★★★★★★★★★★★★★★★★★★★★★★★★★蓝可盈看了一眼解剖床上的男人,面色不动。淡凉的嗓音响起:龙傲天,男,二十八岁,身高188,体重68KG……只是女子的声音还未落,便被男人握住了手腕。然后一转天旋地转,两个人的体位反转。纤细的身形被压在了男人的身下。蓝可盈眯眼,手中的解剖刀架在男人的脖子上。“这里是本法医的地盘,本法医做主?”男人的眼瞳里笑意流转。“那便做主睡了我吧!”“而且这里……应该会是熟悉的刺激吧。
  • 诸天结界

    诸天结界

    在这世界上魔族猖狂,人类的文明一次次的被践踏,被踩灭。看透了人间的一切,生死轮回。再有的世界想无的东西,在无的东西里是不想有的东西的。魔尊狂妄的笑道:“世间的一切苍生,都是阻止我成为世界巅峰的绊脚石。”天君冷静的说道:“你应该是不会得逞的,有我在这世界,这九天十三界,永远是安宁的。”诸天结界,能者诸天,帝国之争,天下无敌。适者生存!!!!!!
  • 木叶文体两开花

    木叶文体两开花

    岸本齐史,男,木叶教师,17岁是木叶史上最年轻的班主任是火影世界唯一的异能行者是宇智波鼬的人生导师是宇智波止水的人生导师是宇智波佐助的人生导师是漩涡鸣人的人生导师是.............三代火影赐锦旗“名师精心指导,培育一代新人。”
  • 封婿

    封婿

    我曾经想写这么一本小说:它不至于过度意淫,但至少阅读愉快,它不是让你读完后热血沸腾却无动于衷,而是能让你静下来有所悟,甚至你们不是在读我小的说,而是品不是说教,我愿把我为数不多的阅历奉献给你,这就是我写《封婿》的理由。一觉醒来,身处异世记忆觉醒,面临人生决择有尊严的穷苦还是有嘲笑的富贵且看李梦龙如何从一个普通贫苦青年成长为人生赢家封婿,一部关于草根的传奇之作不一样地人生轨迹,希望带给读者一样地愉快阅读体验
  • 无上业道

    无上业道

    废物少爷梦天淬炼肉体获得强大力量,势要摆脱臭名。偶得天书残卷,勇闯恶魔之岛,成为绝世天尊。踏碎天道,让这天下众生,诸天万道,皆臣服我在的脚下!
  • 贪恋红尘三千尺

    贪恋红尘三千尺

    本是青灯不归客,却因浊酒恋红尘。人有生老三千疾,唯有相思不可医。佛曰:缘来缘去,皆是天意;缘深缘浅,皆是宿命。她本是出家女,一心只想着远离凡尘逍遥自在。不曾想有朝一日唯一的一次下山随手救下一人竟是改变自己的一生。而她与他的相识,不过是为了印证,相识只是孽缘一场。