美文网首页
14. 迭代器

14. 迭代器

作者: 牛崽儿酷 | 来源:发表于2016-07-15 10:58 被阅读0次

    我们已经知道,可以直接作用于for循环的数据类型有以下几种:
    一类是集合数据类型,如list、tuple、dict、set、str等;
    一类是generator,包括生成器和带yield的generator function。

    这些可以直接作用于for循环的对象统称为可迭代对象:Iterable
    可以使用isinstance()判断一个对象是否是Iterable对象:
    >>> from collections import Iterable
    >>> isinstance([], Iterable)
    True


    可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
    可以使用isinstance()判断一个对象是否是Iterator对象:
    >>> from collections import Iterator
    >>> isinstance((x for x in range(10)), Iterator)
    True

    生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator
    把list、dict、str等Iterable变成Iterator可以使用iter()函数:
    >>> isinstance(iter([]), Iterator)
    True
    >>> isinstance(iter('abc'), Iterator)
    True

    Python的for循环本质上就是通过不断调用next()函数实现的

    相关文章

      网友评论

          本文标题:14. 迭代器

          本文链接:https://www.haomeiwen.com/subject/ptzsjttx.html