要素の削除(del文, popメソッド, popitemメソッド, clearメソッド)
辞書オブジェクトトの中の任意の要素を削除することが可能です。要素を削除するには「del」文を使用します。
del オブジェクト
「del」文は引数に指定したオブジェクトを削除するための文です。「del」文の引数には削除するオブジェクトを指定しますが、辞書オブジェクト[キー]の形式で取得した辞書オブジェクトの要素を指定します。
具体的には次のように記述します。
dict = {"yamada":75, "endou":82} del dict["endou"]
上記の場合はキーが「endou」の要素を削除しています。
辞書型で用意されている「pop」メソッドを実行すると、指定したキーに該当する要素を削除し値を返します。
辞書オブジェクト.pop(キー[, オブジェクト])
1番目の引数に削除したい要素のキーを指定します。キーが辞書オブジェクトに含まれていれば要素を削除し、要素の値を返します。2番目の引数が指定されていた場合、指定したキーが辞書オブジェクトに含まれていない場合に2番目に指定したオブジェクトを返します。
具体的には次のように記述します。
dict = {"yamada":75, "endou":82} val = dict.pop("endou")
上記ではキー「endou」を持つ要素を削除し、その要素の値を変数「val」に代入します。
辞書型で用意されている「popitem」メソッドを実行すると、辞書オブジェクトの中のいずれかの要素を削除し、キーと値を要素とするタプルとして返します。
辞書オブジェクト.popitem()
この時削除される要素はランダムに決まります。その為、辞書オブジェクトに含まれる要素を順に取り出し処理するような場合に適しています。取得できるタプルは「(キー, 値)」の形式となります。
具体的には次のように記述します。
dict = {"yamada":75, "endou":82} whille dict: tuple = dict.popitem()
上記では辞書オブジェクトの要素が空になるまで要素を取り出して削除しています。
辞書型で用意されている「clear」メソッドを実行すると、全ての要素を削除します。
辞書オブジェクト.clear()
具体的には次のように記述します。
dict = {"yamada":75, "endou":82} dict.clear() print dict # {}
この時辞書オブジェクトが削除されるのではなく、空の辞書オブジェクトになります。
では実際に試してみます。
#coding: UTF-8 dict = {"yamada":75, "endou":82} print dict print 'del dict["endou"]' del dict["endou"] dict = {"yamada":75, "endou":82} print dict print 'dict.pop("yamada")' val = dict.pop("yamada") print u"削除された要素の値は" + str(val) + u"です" print 'dict.pop("yamada", "none")' val = dict.pop("yamada", "none") print u"削除された要素の値は" + str(val) + u"です" dict = {"yamada":75, "endou":82, "itou":76} print dict while dict: tuple = dict.popitem() print tuple
上記を「test6-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。
( Written by Tatsuo Ikura )