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像上面的示例一樣同時迭代多個時間的實例。
添加回答
舉報