私は効率を改善するためにdelitemメソッド本体を固定する最良の方法を知りたいと思います。ループを終了しないエラーが発生します。__delitem__メソッドの実装方法は?
def __delitem__(self, idx):
"""Implements `del self[idx]`"""
nidx = self._normalize_idx(idx)
currNode = self.head.next
if nidx >= len(self):
raise IndexError
for i in range(nidx+1, len(self)):
self[i-1] = self[i]
del self[len(self)-1]
を呼び出すことにより、無限にしばしば
__delitem__
を呼びたい[IDX] '' *。そのメソッドの中で、あなたは 'del self [len(self)-1]'を呼び出します。再帰は避けられないようです。 – jonrsharpeリンクされたリスト内の項目を削除するには、削除されたノードの前後にあるノード内の参照をリダイレクトする必要があります。参照カウントが0に落ちるので、 'del'を呼び出す必要はありません。 – cdarke