【Python】辞書型(連想配列)の使い方

この記事では、Pythonの辞書型(連想配列)の使い方とソースコードについて紹介します。

【はじめに】辞書型(連想配列)

Pythonの辞書型とは、リストやタプルのように複数の要素を順に並べたものです。
リストやタプルとの違いは、キーを指定して値を設定することです。
※リスト・タプルでは、要素の指定を「数字(要素番号)」で行います。
辞書型では、要素の指定を任意の文字列や数値で行います。

辞書型の配列は連想配列ともいいます。

【生成】キーに「文字列」「数値」「タプル」を設定

辞書型では、キーに文字列を設定できます。
辞書型は中括弧 { } で要素を括ります。

【書式】

dict = {キー1 : 値1, キー2 : 値2, …}

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

print(data["fubuki"]) # 1

辞書型では、キーに数値を設定できます。

■サンプルコード

data = {3:1, "shirayuki":2}

print(data[3]) # 1

辞書型では、キーにタプルも設定できます。

■サンプルコード

data = {"('fubuki', 'bukki')":1, "shirayuki":2}

print(data["('fubuki', 'bukki')"]) # 1

キーに指定できないものは、値を書き換えできる変数や配列(リスト)です。
タプルは値を書き換えできないため、指定できます。

関連ページ
1 【Python】辞書でキーから値を取得

【辞書型】要素数(長さ)を取得

Pythonのタプルでは、リスト(配列)と同様、以下のように要素数(長さ)を取得できます。
※キーと値が1セットで1要素としてカウントされます
【書式】

len(辞書名)

■サンプルコード

data = {"fubuki'":1, "shirayuki":2}

print(len(data)) # 2
関連ページ
1 【Python】辞書の要素数(長さ)を取得

【辞書型】連結、データ追加

Pythonの辞書では、updateメソッドで辞書同士を連結(データ更新)できます。

【書式】

辞書名2.update(辞書名1)

※辞書名1の後ろに辞書名2が追加されます。

■サンプルコード

data = {"fubuki":1, "shirayuki":2}
data2 = {"hatsuyuki":3, "miyuki":4}

data.update(data2)

print(data) # {'hatsuyuki': 3, 'miyuki': 4, 'fubuki': 1, 'shirayuki': 2}

Pythonの辞書では、存在しない「新しいキー」「値」を辞書に代入すると、辞書にデータを追加できます。

書式

辞書名[新しいキー名] = 値

※辞書の最後尾に追加されます。

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

data["hatsuyuki"] = 3

print(data) # {'fubuki': 1, 'shirayuki': 2, 'hatsuyuki': 3}
関連ページ
1 【Python】辞書の連結(データ追加)
2 【Python】辞書にデータ追加

【辞書型】データ代入(値の書き換え)

Pythonの辞書では、以下のようにに代入すると、辞書の値を書き換えできます。

【書式】

辞書名{キー} = 新しい値

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

data["fubuki"] = 5

print(data["fubuki"]) # 5
関連ページ
1 【Python】辞書にデータ代入(値の書き換え)

【辞書型】del文、popメソッド、clearメソッドで要素削除

Pythonの辞書では、del文、もしくはpopメソッドを用いて指定したキーをもつ要素のみを削除できます。

書式

del 辞書名[キー]
辞書名.pop(キー)

※popメソッドの場合は、返り値で消去した要素の値を取得できます。

■del文のサンプルコード

data = {"fubuki":1, "shirayuki":2}

del data["fubuki"]

print(data) # {'shirayuki': 2}

■popメソッドのサンプルコード

data = {"fubuki":1, "shirayuki":2}

del_value = data.pop("fubuki")

print(del_value) # 1
print(data) # {'shirayuki': 2}

■clearメソッドのサンプルコード
Pythonの辞書では、clearメソッドを用いて全ての要素を削除できます。

data = {"fubuki":1, "shirayuki":2}

data.clear()

print(data) # {}

【書式】

辞書名.clear(キー)
関連ページ
1 【Python】辞書の要素削除(del文、popメソッド)
2 【Python】辞書の全ての要素削除

【辞書型】キーの存在確認(in演算子)

Pythonの辞書では、in演算子を用いて指定したキーが存在するか確認できます。

【書式】

キー in 辞書名

■返り値
キーが辞書に存在する・・・True
キーが辞書に存在しない・・・False

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

print("fubuki" in data) # True
print("kaga" in data) # False

【辞書型】全てのキー・値を取得

Pythonの辞書では、keysメソッドを用いて全てのキーを取り出せます。
同様に、valuesメソッドで全ての値を取り出せます。

【書式①】

辞書名.keys()

※返り値:全てのキー(リスト型)

【書式②】

辞書名.values()

※返り値:全ての値(リスト型)

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

print(data.keys()) # dict_keys(['shirayuki', 'fubuki'])
print(data.values()) # dict_values([1, 2])
関連ページ
1 【Python】辞書の全てのキー・値を取得

【辞書型】タプル・リストに変換

Pythonの辞書では、itemsメソッドで要素をタプル・リストに変換して取り出せます。

【書式】

辞書名.items()

※返り値:各要素をタプル(キー, 値)に変換し、各タプルをリストに格納したもの

■サンプルコード

data = {"fubuki":1, "shirayuki":2}

print(data.items()) # ([('shirayuki', 2), ('fubuki', 1)])
関連記事
1 【Python】辞書の要素をタプル・リストに変換
関連ページ
1 【Python】辞書型(連想配列)の使い方
2 【Python入門】サンプル集
関連記事