概念:迭代器是访问元素的一种方式,迭代器对象从第一个元素开始访问,直到所有元素被访问完结束,且只能往前访问不能后退。迭代器仅仅在访问某个元素时,
才计算该元素,而在这之前后之后,元素可以不存在或者被销毁。
迭代器有以下几个特点:
1.访问者不需要关心迭代器内部的结构,仅需通过next()的方法不断去取下一个内容
2.不能随机访问集合中的某个值,只能从头到尾依次访问
3.访问的时候不能往回退
4.便于循环比较大的数据集合,节省内存
生成一个迭代器:
names=iter(['小鸿','小孙','小高'])
print(names)
-----结果-----
<list_iterator object at 0x10a85e588> #list_iterator表面是一个列表迭代器
在上面的例子中,生成的是一个列表迭代器,想要取出其中值的话,是不能用列表的方法去取值的,在迭代器中,取值得用以下的方法:
names=iter(['小鸿','小孙','小高'])
print(names.__next__())
print(names.__next__())
print(names.__next__())
print(names.__next__())
-----结果-----
小鸿
小孙
小高
StopIteration #没有值的时候,会给出该错误提示
遍历循环内容:
names=['小鸿','小孙','小高']
it = iter(names)
try:
while True:
val = it.__next__()
print(val)
except StopIteration:
pass
-----结果-----
小鸿
小孙
小高