国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Python之可迭代对象、迭代器、生成器

Python之可迭代对象、迭代器、生成器

头像

爱喝马黛茶的安东尼

2019-07-05 10:01:373037浏览 · 0收藏 · 0评论

Python可迭代对象(Iterable) 

Python中经常使用for来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象,像常见的list,tuple都是。如果给一个准确的定义的话,就是只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法,那么它就是一个可迭代对象。

Python迭代器(iterator) 

迭代器是通过next()来实现的,每调用一次他就会返回下一个元素,当没有下一个元素的时候返回一个StopIteration异常,所以实际上定义了这个方法的都算是迭代器。可以用通过下面例子来体验一下迭代器:

生成器(Generators) 

生成器是构造迭代器的最简单有力的工具,与普通函数不同的只有在返回一个值的时候使用yield来替代return,然后yield会自动构建好next()和iter()

因为迭代器如此普遍,python专门为for关键字做了迭代器的语法糖。在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。

相关推荐:《Python视频教程

定义迭代器 

下面一个例子——斐波那契数列

# -*- coding: cp936 -*-
class Fabs(object):
    def __init__(self,max):
        self.max = max
        self.n, self.a, self.b = 0, 0, 1  #特别指出:第0项是0,第1项是第一个1.整个数列从1开始
    def __iter__(self):
        return self
    def next(self):
        if self.n < self.max:
            r = self.b
            self.a, self.b = self.b, self.a + self.b
            self.n = self.n + 1
            return r
        raise StopIteration()

print Fabs(5)
for key in Fabs(5):
    print key

结果

<__main__.Fabs object at 0x01A63090>
1
1
2
3
5
关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

狠狠人妻久久久久久综合九色| 憋尿白丝小肚子凸起高冷知乎 | 年轻的妈妈| 上海吃奶门| 皇空无痕MV免费视频观看 | XBOX360龙的欧美RPG| 激吻视频| 中字《喝醉的丈夫被结城送回家》 | 麻花星空传剧原创MV在线| 性的快乐| 《疯狂72小时》韩剧| 女人尝试到更粗大的心理变化| 小辣椒3美国伦理| 双人床上剧烈运动会怎么消除 | 《妻欲公与媳》免费看| 成人做爰100部片| 亚洲乱熟女-区二区三区山口珠理| 日韩电影| 麻花视频3.2.2| 《魅魔之耻》1~4集免费看| 找找色| 双飞儿媳妇和她闺蜜免费阅读 | 玉蒲团2之艳乳欲仙欲》| 《麦子的秘密2》在线观看| 男人为什么最后要加速| 《特殊的补课方式》| 暴躁少女BGM在线观看| 白白色视频| 儿媳婉柔和父亲王大川的背景故事 | 《女教师的味道3》在线观看| 小柔与王叔的第一次相遇是第几集 | 淑芬两腿间又痒又疼的原因| 《妻子的肉体偿还》5| 他扒开我小沉添我三男一女视频 | 《厨房韵母2》动漫下线了吗 | 白日梦我电视剧| 美国伦理《轻佻寡妇》| 女生穿露胸开又裙穿搭大忌 | 黑料不迷路万里长征| 第1章饱满的乳峰喷奶水动漫| 聊斋艳谭之灯草和尚