Skip to main content

辞書型データ

辞書型データはデータ型の一種で、リスト型データと同様、複数のデータを含むことができるデータ型です。ただしリスト型データと異なり、辞書型データ内の要素の一つ一つが、キー(key)と値(value)のペアで構成されています。キーは各要素の名前のようなもので、値がそのキーに紐付けられたデータと考えると良いでしょう。

辞書型データは、

{キー1: 値, キー2: 値, ...}

のように、{}の中に要素をカンマで区切って示します。それぞれの要素では、キーの後に「:」をつけ、その後に値を入れます。

辞書型データのキーには多くの場合文字列あるいは数字を使います。辞書型データの値は、Pythonのデータ型であれば何でも大丈夫です。

下は辞書型データの例です。

>>> 辞書型データの例1 = {'おはよう': '朝にするあいさつ', 'こんにちは': '昼にするあいさつ', 'こんばんは': '夜にするあいさつ'}
>>> 辞書型データの例2 = {1: 'ね', 2: 'うし', 3: 'とら'}

辞書型データで使えるオペレータ

辞書型データでは以下のオペレータを使うことができます。

オペレータ 意味
[キー] 指定したキーの値を取り出す
キー in 辞書 辞書の要素に、「キー」というキーがある場合`True`を返す
キー not in 辞書 辞書の要素に、「キー」というキーがない場合`True`を返す
それでは辞書型データにこれらのオペレータを使ってみましょう。
辞書型データの例1 = {'おはよう': '朝にするあいさつ', 'こんにちは': '昼にするあいさつ', 'こんばんは': '夜にするあいさつ'}

print(辞書型データの例1['こんばんは']) # 夜にするあいさつ
print('おはよう' in 辞書型データの例1) # True
print('おやすみ' not in 辞書型データの例1) # True

[キー]のオペレータを使って「=」を使うことで、そのキーに紐づけられている値を変えることができます。[キー]が存在しない場合は新たに[キー]とその値を辞書型データの要素として追加することができます。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'し'}
print(d1[4]) # し

d1[4] = 'よん'
print(d1[4]) # よん

d1[5] = 'ご'
print(d1) # {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん', 5: 'ご'}

要素の削除

辞書型データから要素を削除する場合は、del文、あるいはpop()メソッドを使います。

del

del文は、

del d[キー]

という書き方をします。例を見てみましょう。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
del d1[3]
print(d1) # {1: 'いち', 2: 'に', 4: 'よん'}

pop()メソッド

pop()メソッドは、

辞書型データ.pop(キー)

という書き方をします。pop()メソッドは辞書型データ内の要素を削除すると同時に、その値をreturnします。例を見てみましょう。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
a = d1.pop(3)
print(d1) # {1: 'いち', 2: 'に', 4: 'よん'}
print(a) # さん

その他メソッド

keys()メソッド

keys()メソッドは、辞書型データのキーを列挙してくれます。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
print(d1.keys()) # dict_keys([1, 2, 3, 4])

このメソッドによって返される値はリストと近いものですが、リストが受け付ける操作をすべて受け付けるわけではありません。たとえば、リストに対しては[n]によって左からn番目の要素を取り出すことができますが、辞書型データのkeys()が返す値に対して同じことをしようとするとエラーが発生します。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
print(d1.keys()[0]) # (エラーが発生します)

そのような場合はlist()関数を使うことで、keys()メソッドが返す値をリストに変換することができます。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
print(list(d1.keys())[0]) # 1

values()メソッド

values()メソッドは、ある辞書型データの値を列挙してくれます。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
print(d1.values()) # dict_values(['いち', 'に', 'さん', 'よん'])

こちらも先程のkeys()メソッドと同様に、返される値はリストではないので、リスト型データに変換したい場合はlist()関数を使います。

d1 = {1: 'いち', 2: 'に', 3: 'さん', 4: 'よん'}
print(list(d1.values())) # ['いち', 'に', 'さん', 'よん']

その他にも使えるメソッドがたくさんあります。help()関数で確認してみましょう。