可迭代对象:列表,元组,字符,集合
可迭代对象通过 __ iter __ 拿到迭代器 iterator,之后通过__next__完成逐步迭代。
lst = [1, 2, 3, 4]
it = lst.__iter__()
print(it.__next__())
print(it.__next__())
print(it.__next__())
print(it.__next__())
打印结果:
1
2
3
4
此时,不能再继续到下一个元素
不然,会报错。
print(it.__next__())
StopIteration
迭代器模拟for循环:
num = ["上单", "打野", "adc"]
it = num.__iter__()
while True:
try:
print(it.__next__())
except StopIteration:
break
打印:
上单
打野
adc
iterable:可迭代对象,内部含有__iter__函数
iterator:迭代器。内部含有__iter__()同时包含__next__()。
迭代器的特点:
1.节省内存
2.惰性机制,必须要next驱动,不会自动往下迭代
3.不能反复,只能往下执行,不能退回到原来的位置。