国产成人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
关注

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

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

年轻嫂子| 美女两个球球抖动抓球球视频| 胸大的手都抓不过来怎么回事| 音响怎么选| JK| 阴部按摩出水太尴尬怎么办| 欧式少女16集全免费观看电视剧| 欧美大妈LOGO大全| 少女的夜晚初体验免费观看电视剧| 豪门贵妇猎美录TXT| 周未同床 电影| 老和尚猛挺进她莹莹的体导演是谁 | 男人为什么最后要加速| 小妹妹爱大棒棒免费观看电视剧一 | 九1黄9·1| 女人喜欢快抽还是慢送?| 欧美大片PPT| 粘液共生1~3集免费观看动漫| 黑色黄丝包臀紧身连衣裙| 公憩止痒小说原著叫什么名字| 半推半就干朋友老婆下一句怎么接| 美国式禁忌| 成全在线观看免费完整的 | 女性下面摸起来有很多疙瘩| 臣卜扌桑扌圭辶鬲爸爸| 一前一后三个人一起的游戏规则 | 《医务室的小秘密》动漫第一季免... | 《后宫狂热》动漫全集完整| 公憩止痒小说原著叫什么名字| 儿ZZ儿LZZ儿LZ老师好多.| 老公在洗澡我被公干日本| 免费B站看大片真人电视剧| 高三妈妈用性缓解孩子压力| 99久久无码-区人妻A片潘金莲| 下面的小嘴又饿了| 妈妈俱乐部1-34节小说| 瑜伽馆里的私密按摩效果怎么样 | 厨房肉欲(H)冰块| 《妻欲公与媳》免费看| 欧美电影免费观看电视剧大全 | 成全影视大全免费追剧大全