《29》連結:メソッド extend(補足)〈Python 2.x 版〉
実録:はじめてのプログラミング《記事一覧》
《29》連結:メソッド extend(補足)
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
2009年2月9日(月)
連結:メソッド extend(補足)
class myList(object): ... def extend(self, iterable): if not iterable: return new = myList(iterable) del self.tail.next # (1) self.tail.next = new.head.next # (2) self.tail = new.tail # (3) del new.head # (4)
指定された引数 iterable を、リストの末尾に連結する様子を、図解とともに解説します。
- (1)もとのリストの終端にある、オブジェクト self.tail.next を削除 del(リソースを解放)します。
- (2)もとのリストの末尾のノード self.tail.next は、新たなリストの先頭要素 new.head.next と同じものを参照します。すると、一方のリストの末尾に他方のリストの先頭が連結されます。
- (3)末尾のノードを表わす属性 self.tail は、連結したリストの末尾のノード new.tail と同じものを参照します。すると、そのノードが新たな末尾になります。
- (4)連結したリストの先端にある、オブジェクト new.head を削除 del します。
Tips
Last updated♪09/03/01