迭代 软件开发非常常见 -> 迭代更新
- 重复
- 下一次 是基于 上一次的 结果之上
能被for循环的/有__iter__()
可迭代对象调用__iter__()方法得到的就是迭代器.
迭代器的特征:
- 都有__iter__、__next__方法
- 调用它的__next__方法,得到迭代器里面的元素
- 没有元素了,就抛出StopIteration
迭代器的特点:
优点:
- 它不依赖索引
- 惰性计算,节省内存 list1 = [1, 2, 3, 4, 5]
缺点:
- 没有索引灵活 -> 只能从头到尾一个一个取
- 一次性,只能往后取,不能退回
dict1 = {"Alex": 122, "Seven": 5000, "Egon": 3000, "Andy": 50}
# 得到一个迭代器
ret = dict1.__iter__()
# ret = iter(dict1)
# for循环的实质
while True:
try:
# 依次取元素
print(ret.__next__()) # 取迭代器的下一个元素
# print(next(ret))
except StopIteration:
breakobj.iter() <==> iter(obj) obj.next() <==> next(obj)
len(obj) -> obj.len()
