1 回答
TA贡献1906条经验 获得超10个赞
尽管 Python 列表是可迭代的,但我们假设它们不是:
class MyList():
class Iterator():
def __init__(self, lst):
self.lst = lst
self.index = -1
self.max_index = len(lst)
def __next__(self):
self.index += 1
if self.index == self.max_index:
raise StopIteration()
return self.lst[self.index]
def __init__(self, lst):
self.lst = lst
def __iter__(self):
return MyList.Iterator(self.lst)
l = MyList([0, 1, 2])
for i in l:
for j in l:
print (i, j)
印刷:
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
重要的提示
我应该提到,将迭代器实现MyList为一个单独的类,它保持自己的迭代状态,这使您可以MyList像上面的示例一样同时迭代多个时间的实例。
添加回答
举报