1. 迭代器是什么
迭代器的概念在c++和python类似。作用也类似。
无论是序列容器还是关联容器,最常做的操作无疑是遍历容器中存储的元素,而实现此操作,多数情况会选用“迭代器(iterator)”来实现。那么,迭代器到底是什么呢?
我们知道,尽管不同容器的内部结构各异,但它们本质上都是用来存储大量数据的,换句话说,都是一串能存储多个数据的存储单元。因此,诸如数据的排序、查找、求和等需要对数据进行遍历的操作方法应该是类似的。它可以是需要的任意类型,通过迭代器可以指向容器中的某个元素,如果需要,还可以对该元素进行读/写操作。
简言之就是对容器中的数据进行遍历访问就是迭代器。
我们常见的数据结构中:list, tuple, dict等内部实现了迭代器
2. 迭代器例子:
方法1:
class GenData(object):
def __init__(self):
self.datas = [i*10 for i in range(100)]
def __len__(self):
return len(self.datas)
def __getitem__(self, index):
try:
data = self.datas[index]
except IndexError:
raise StopIteration()
return data
gd = GenData()
for i in gd:
print(i)