《45》削除:メソッド __delitem__〈Python 2.x 版〉
実録:はじめてのプログラミング《記事一覧》
《45》削除:メソッド __delitem__
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
2009年3月17日(火)
今日の進捗
- The Python Standard Library: Mapping Types — dict
- Python.use(better) -- セミナー研修テキスト
- 連想リスト課題を「続・ひよ子のきもち」で公開
Comment | |
---|---|
本人:野中 | 福岡の桜はもうすぐ満開です。それまでに課題も完成したいです。 |
担当:伊藤/本間 | 。(^^) |
削除:メソッド __delitem__
組み込み型 dict と同様に、del 文を利用して要素対を削除できると便利です。すると、
def ex(): m = myDict((e,ord(e)) for e in "ABC") for e in "B@": print "-->",m,"\t#",m.__class__.__name__ del m[e] print "<--",m,e >>> ex()
-
- > {'A': 65, 'B': 66, 'C': 67} # myDict
-
- > {'A': 65, 'C': 67} # myDict
キー要素を指定して(それと対応する)要素対を削除できるのが分かります。また、存在しないキー要素を指定すると、例外 KeyError を生成して、エラーメッセージを出力します。そこで、
class myDict(object): ... def __delitem__(self, key): for i,k in enumerate(self): if k==key: del self._keys [i] del self._values[i] break else: raise KeyError,key
局所変数 k が、指定した引数 key と同じ値になるとき、同じオフセット位置 i にある要素対 self._keys/self._values を削除します。条件を満たす要素が見つからないときには、例外 KeyError を生成するとともに、プログラマーへの注意を促すエラーメッセージを出力します。