迭代器
可迭代对象
迭代器是实现迭代器协议的对象,它包含__iter__()和___next_()方法,我们常见的可迭代对象有列表、元组、字典,字符串,我们可以从这些迭代对象中获取迭代器,从而进行迭代
生成迭代器实例
list =["iterable","tuple"]
#生成迭代器
l = next(list)
#使用next进行迭代
next(l)
遍历可迭代对象
multi = ("a", "b", "c")
for x in multi:
print(x)
#实际上也是生成了迭代器,然后执行next方法
创建迭代器
class MyNum:
def __iter__(self):
self.num=1
#生成迭代器对象返回self本身
return self
def __next__(self):
self.num+=1
#next方法获取迭代的对象值
return num
#生成迭代器对象
a= iter(MyNum())
#next方法进行迭代
next(a)
next(a)
迭代器应用场景
迭代器最核心的功能就是通过next()函数的调用返回下一个函数值,它是可以通过程序按照规律来进行生成,不用依赖已有的集合(列表、字典等),也就是不用缓存数据节省内存空间。
我们的斐波那契数列1我们就可以用迭代器来实现
class MyNum:
def __iter__(self):
self.a =0
self.b =1
return self
def __next__(self):
self.num = self.a+self.b
self.a= self.b
self.b =self.num
return self.num
q = iter(MyNum())
#####打印看效果#####
print (next(q))
print (next(q))
print (next(q))
print (next(q))
print (next(q))
print (next(q))
更多内容可以看我的bilibili账号:https://space.bilibili.com/432730836
斐波那契数列就是第三个数是前两个数的和, ↩︎