python迭代器
迭代器
- 迭代器是一个可以记住遍历的位置的对象。
- 迭代器对象从第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
- 迭代器有两个基本的方法:iter() 和 next()。
- 字符串,列表或元组对象都可用于创建迭代器:
创建一个迭代器:
- 把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() 。
- __iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。
- __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)) print("#############################") # for循环方式遍历迭代器 for i in myclass: if i > 10: break print(i)
执行结果:
1 2 3 4 5 ############################# 1 2 3 4 5 6 7 8 9 10