Skip to main content

5、迭代器

Y-aong...About 1 minpython生成器

5、迭代器

一、定义

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter()next()

字符串,列表或元组对象都可用于创建迭代器

二、定义迭代器

把一个类作为一个迭代器使用需要在类中实现两个方法 iter() 与 next()

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self
 
  def __next__(self):
    x = self.a
    self.a += 1
    return x
 
myclass = MyNumbers()
myiter = iter(myclass)
 
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

三、StopIteration

StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 next() 方法中我们可以设置在完成指定循环次数后触发StopIteration异常来结束迭代。

四、迭代器的判断

def is_iterable(obj):
    status = True
    try:
      iter(obj)
    except TypeError:
      status = False

  return status

# 判断迭代器对象
def is_iterator(obj):
  return is_iterable(obj) and obj is iter(obj)
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.15.8