美文网首页
迭代对象、迭代器、生成器

迭代对象、迭代器、生成器

作者: LuDon | 来源:发表于2019-03-29 17:56 被阅读0次

    容器(container)

    容器是一种把多个元素组织在一起的数据机构,容器中的元素可以逐个地迭代获取。Python中常见的容器有:

    • list,deque
    • set,frozensets
    • dict, defaultdict
    • tuple, namedtuple
    • str

    可迭代对象(iterable)

    可以返回一个迭代器的对象可称为可迭代对象。

    >>> x = [1, 2, 3]
    >>> y = iter(x)
    >>> z = iter(x)
    >>> next(y)
    1
    >>> next(y)
    2
    >> next(z)
    1
    

    迭代器(iterator)

    迭代器是一个带状态的对象,在调用next()方法的时候返回容器中的下一个值。每次调用next()时做两件事:
    1、为下一次调用next()方法修改状态;
    2、为当前这次调用生成返回结果。

    生成器(generator)

    生成器是Python中最吸引人的特性,生成器其实就是一种特殊的迭代器。

    def fib():
        prev, curr = 0, 1
        while True:
            yield curr
            prev, curr = curr, curr + prev
    
    >>> f = fib()
    >>> list(islice(f, 0, 10))
    [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
    

    相关文章

      网友评论

          本文标题:迭代对象、迭代器、生成器

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