Python.use(better) #list: step12 -- def extend
‖記事一覧‖
Python.use(better)
step12 -- def extend
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python myList.py >>> do() ... 12: step12 -- def extend(self, iterable)
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do の実引数を指定します。
>>> do(12) ... >>> # ---------------------------------------- extend >>> s = myList("ABC"); s, len(s) (['A', 'B', 'C'], 3) >>> s.extend(''); s, len(s) (['A', 'B', 'C'], 3) >>> s.extend('D'); s, len(s) (['A', 'B', 'C', 'D'], 4) >>> s.extend('EF'); s, len(s) (['A', 'B', 'C', 'D', 'E', 'F'], 6) >>>
事例:コードの解説
def step12(): """def extend(self, iterable)""" class myList(object): ... def extend(self, iterable): #1: if not iterable: return prev, node = self.head, self.head.next while node: if node==self.tail: del self.tail.next new = myList(iterable) node.next = new.head.next self.tail = new.tail del new.head break prev, node = node, node.next ## ---------------------------------------- local = locals() tips = ( ... "extend", ) for e in tips: print(">>> #","-"*40,e) eval("ex_%s(SPEC, local)"%e)
》こちらに移動中です《
》こちらに移動中です《
■ #1: リストの連結
メソッド extend は、末尾に要素を追加して、2つのリストを連結します。
def extend(self, iterable): #1:
if not iterable: return
prev,node = self.head,self.head.next
while node:
if node==self.tail:
del self.tail.next
new = myList(iterable)
node.next = new.head.next
self.tail = new.tail
del new.head
break
prev,node = node,node.next
def count(self, value): #1: AFTER return sum(1 for e in self if e==value)
- 連結リスト self の各ノード _ を順にたどりながら、その中のどれか any が value と同値かを判定します。
》こちらに移動中です《
↑TOP