我想創建一個類似列表的類。挑戰在於不使用列表或字典。到目前爲止,我已經創建了一個節點類是這樣的:如何讓MyList可迭代?
class Node:
def __init__(self, value=None):
self.next = None
self.last = None
self.value = valor
def __repr__(self):
return self.value
而且MyList
類,基本上節點鏈,用頭節點和尾節點。事情是,我想讓它迭代,以便我可以運行它。我搜索如何ITER和明年工作,並與這樣的事情上來:
class MyList:
def __init__(self):
self.head = None
self.tail = None
def __iter__(self):
return self
def __next__(self):
if self.head:
if self.head.next:
self.head = self.head.next
return self.head.last
aux = self.head
self.head = None
return aux
raise StopIteration
它的工作原理,但它顯然刪除裏面MyList
的數據,所以我不能再使用它。任何有關如何獲得相同結果而不搞亂對象內部信息的建議?
你不會產生什麼? –
@RasmusDamgaardNielsen:'__next__'應該返回值,而不是產生它。 – BrenBarn
沒有。我真的不明白髮電機是如何工作的。我已經嘗試了幾次,並以循環結束。 –