您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 如何检查迭代器是否实际上是迭代器容器?

5b51 2022/1/14 8:22:49 python 字数 1723 阅读 563 来源 www.jb51.cc/python

我有一个下面的迭代器容器的虚拟示例(真正的读取文件太大而不适合内存): class DummyIterator: def __init__(self, max_value): self.max_value = max_value def __iter__(self): for i in range(self.max_value):

概述

class DummyIterator:
    def __init__(self,max_value):
        self.max_value = max_value

    def __iter__(self):
        for i in range(self.max_value):
            yield i

def regular_dummy_iterator(max_value):
    for i in range(max_value):
        yield i

这允许我多次迭代该值,以便我可以实现这样的事情:

def normalise(data):
    total = sum(i for i in data)
    for val in data:
        yield val / total

# this works when I call next()
normalise(DummyIterator(100))

# this doesn't work when I call next()
normalise(regular_dummy_iterator(100))

如何检查normalize函数,我正在传递一个迭代器容器而不是一个普通的生成器?

迭代生成迭代器.任何迭代器也是可迭代的,但它自己生成迭代器:

>>> list_iter = iter([])
>>> iter(list_iter) is list_iter
True

如果iter(ob)是ob test,则没有迭代器.

总结

以上是编程之家为你收集整理的python – 如何检查迭代器是否实际上是迭代器容器?全部内容,希望文章能够帮你解决python – 如何检查迭代器是否实际上是迭代器容器?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶