Python3 – 辞書

リテラル

辞書(dictionary)の要素はキーと値のセットで保持される。辞書の要素はリストのような順序を持たない(さらに言えば、このコードを実行するごとに表示される順番が変わる)。

キーや値の型は混在しても構わない。

キーについて

キーに使える型は、数値、文字列、タプルなど内容を変更できない型。

数値や文字を格納した変数をキーに指定すると、変数の内容がキーになる。

既存のキーに新たな要素を定義しようとすると、[最後に指定したキー]:[値]のペアになる(1つのキーには1つの値しか格納されない)。

リストやリストを含む変数、タプルをキーに使うとTypeErrorとなる。

内容の取得

要素数

辞書が持っている要素の数はlen()関数で得られる。

全てのキー・値・要素

辞書内の全てのキー、値、要素は、それぞれkeys()values()items()で取得。結果はdict_keysdict_valuesdict_itemsオブジェクトで得られ、list()関数でリスト化が可能。

要素の操作

要素の参照、追加

値の参照はキーを指定して行う。存在しないキーを指定して参照するとKeyError。

要素の追加は、新たなキーを指定して値を代入。

既存のキーを指定して、その内容を更新。

要素の削除

del文/del()関数

del文/del()関数はキーを指定して要素を削除する。

pop()メソッド

pop()メソッドは、引数で指定した要素を削除し、そのオブジェクトを返す。第2引数を指定した場合、キーが存在しないときに第2引数を返す。

clear()メソッド

clear()メソッドは辞書をすべてクリアする。

存在確認

キーの存在確認

辞書が指定したキーを持つかどうかをチェックするにはin演算子を使う。直接辞書に適用してもkeys()に適用しても結果は同じ。Python3ではhas_key()メソッドはなくなった。

値の存在確認

辞書が指定した値を持つかどうかは、in演算子にvalues()を適用

辞書オブジェクトの操作

辞書同士の連結

update()メソッドで他の辞書を連結できる。この操作は、元の辞書の内容を更新する。

ただし元の辞書と追加する辞書で重複するキーがあった場合は、追加する方の辞書の要素で上書きされる。

複数の値を持つ辞書

通常は重複したキーに値を登録すると、最後に登録した値で上書きされて1つしか残らないが、値をリストにすることで、同じキーに複数の値をもたせることができる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です