四时宝库

程序员的知识宝库

Python基础知识(三)可迭代对象(python中可迭代对象有哪些)

自定义可迭代类MyIterator

class MyIterator:
    def __init__(self, data):
        self.data = data
        self.size = len(data)
        self.index = -1

    def __iter__(self):
        return self

    def __next__(self):
        self.index = self.index + 1
        if self.index >= self.size:
            raise StopIteration
        else:
            return self.data[self.index]

使用创建MyIterator类型的可迭代对象myIterator

>>> from collections.abc import Iterator
>>> myIterator = MyIterator([1,2,3])
# 可以看到该对象是Iterator的一个实例
>>> isinstance(myIterator, Iterator)
True

获得对象的迭代器

啥是迭代器?比如一个Class集合中有多个student,你可以把迭代器当作点名的老师。

# 1. 使用__iter__()获得迭代器
>>> it = myIterator.__iter__()
# 2. 使用内建函数iter()获得迭代器
>>> it = iter(myIterator)

迭代可迭代对象

# 1 可以使用__next__()方法取下一个值
>>> it.__next__()
1
# 2 可以使用内建函数next()取下一个值
>>> next(it)
2

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接