Python独習塾

  • ホーム
  • Pythonのdict(辞書)の解説

Pythonのdict(辞書)の解説

  • 作成日: 2025-07-08
  • 更新日: 2025-07-11
  • カテゴリ: 基本
  • タグ: dict, 辞書

この記事ではPythonのdict(辞書)を解説します。
参考ドキュメントは以下になります。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

Pythonのdictとは?

Pythonのdictは、キーと値をペアにしてアイテムを格納できるデータ構造です。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

たとえば「cat」というキーに「1」という値を持たせたいとします。
そういう場合は以下のようにします。

d = {'cat': 1}  

print(d)  # {'cat': 1}  

上記のブレース({})で囲んだオブジェクトが辞書です。変数dには辞書が保存されます。
複数のキーと値を定義することもできます。

d = {'cat': 1, 'bird': '222', 'pig': 3.14}  

print(d)  # {'cat': 1, 'bird': '222', 'pig': 3.14}  

辞書は他言語ではハッシュマップと呼ばれることもあります。色々な言語で標準で実装されているたいへん人気のあるデータ構造の1つです。

Pythonのdictでアイテムを追加するには?

Pythonのdictにアイテムを追加するには、キーに値を設定します。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d = {}  # 辞書の作成  

d['cat'] = 1  # キーcatに値1をセット  
d['bird'] = 2  # キーbirdに値2をセット  

print(d)  # {'cat': 1, 'bird': 2}  

d['cat']と言うように、変数に角かっこを付けてキーを指定すると、そのキーの値にアクセスできます。代入演算子=でその値を上書きすることができます。キーが存在しない場合は新しくキーが作られて値が代入されます。

Pythonのdictにupdateでアイテムを追加するには?

Pythonのdictのメソッド、updateを使うと複数のアイテムを辞書に追加できます。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d = {'cat': 1}  

d.update(bird=2, pig=3)  
print(d)  # {'cat': 1, 'bird': 2, 'pig': 3}  

d.update(bird=2, pig=3)で、キーに対して値をキー=値という形で指定します。こうするとアイテムを追加できます。

また、updateの引数はイテラブルの形でも追加できます。

d = {'cat': 1}  

d.update([('bird', 2), ('pig', 3)])  
print(d)  # {'cat': 1, 'bird': 2, 'pig': 3}  

[('bird', 2), ('pig', 3)]という風に、アイテムをタプルで作り、タプルの0番目の要素をキー、タプルの1番目の要素を値にします。タプルを複数にすることで複数のアイテムを追加できます。

あるいはzipで異なるリストやタプルをまとめて、updateに指定することもできます。

d = {'cat': 1}  
lis = ['bird', 'pig']  
tup = (2, 3)  

d.update(zip(lis, tup))  
print(d)  # {'cat': 1, 'bird': 2, 'pig': 3}  

上記の場合はlisがキーに、tupが値になります。

Pythonのdictをfor文で回すには?

Pythonのdictはfor文で回すことができます。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント
出典:8. for文 — 複合文 (compound statement) — Python 3.13.5 ドキュメント

関連記事:Pythonのfor文(繰り返し処理、ループ)を解説【range, enumerate】

d = {'cat': 1, 'bird': 2, 'pig': 3}  

for key in d:  
    print(key, d[key])  
cat 1  
bird 2  
pig 3  

辞書はそのままfor文のinの右側に指定すると、inの左側の変数にキーを代入していきます。
キーを辞書に角かっこで指定することでそのキーに対応する値を得ることができます。

Pythonのdictのkeysメソッドでfor文を回すには?

Pythonのdictのメソッドkeysを使うことで辞書からキーだけを取り出せます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

for key in d.keys():  
    print(key, d[key])  
cat 1  
bird 2  
pig 3  

Pythonのdictのvaluesメソッドでfor文を回すには?

Pythonのdictのメソッドvaluesを使うと、辞書の値だけを取り出すことができます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

for value in d.values():  
    print(value)  
1  
2  
3  

Pythonのdictのitemsメソッドでfor文を回すには?

Pythonのdictのメソッドitemsを使うと、キーと値を辞書から取り出すことができます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

for key, value in d.items():  
    print(key, value)  
cat 1  
bird 2  
pig 3  

Pythonのdictでkeyが存在するか確かめるには?

Pythonのdictでキーが存在するか確かめるにはin演算子を使います。

出典:6. 所属検査演算式 — (expression) — Python 3.13.5 ドキュメント
出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d = {'cat': 1, 'bird': 2, 'pig': 3}  

print('cat' in d)  # True  
print('bird' in d)  # True  
print('pig' in d)  # True  
print('dog' in d)  # False  

キー in 辞書という形でキーが辞書に存在するか確認することができます。キーが辞書に存在しないことを確かめたい場合はnot inを使います。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

print('cat' not in d)  # False  
print('bird' not in d)  # False  
print('pig' not in d)  # False  
print('dog' not in d)  # True  

上記の場合は辞書dにはdogが存在していないので、not inの結果がTrueになります。

Pythonのdictでgetで値を得るには?

Pythonのdictのメソッド、getでキーから値を得ることができます。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d = {'cat': 1, 'bird': 2}  

print(d.get('cat'))  # 1  
print(d.get('bird'))  # 2  

キーが辞書に存在しない場合はgetはNoneを返します。

d = {'cat': 1, 'bird': 2}  

print(d.get('pig'))  # None  

getの第2引数にデフォルト値を指定することができます。これはキーが存在しない場合はgetの返り値になります。

d = {'cat': 1, 'bird': 2}  

print(d.get('pig', 3))  # 3  

Pythonのdictからkeyを取得するには?

Pythonのdictからキーを取得する方法を解説します。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

Pythonのdictのkeysメソッドをkeyを取得するには?

Pythonのdictのkeysメソッドでキーの列を取得できます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

keys = d.keys()  
print(keys)  # dict_keys(['cat', 'bird', 'pig'])  

keys = list(keys)  
print(keys[0])  # cat  
print(keys[1])  # bird  
print(keys[2])  # pig  

dict_keysはそのままでインデックス・アクセスができないのでリストなどに変換して参照します。

Pythonのdictのkeyをリスト内包表記で取得するには?

Pythonのdictのキーをリスト内包表記で取得できます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

keys = [key for key in d]  
print(keys)  # ['cat', 'bird', 'pig']  

辞書dはfor文に渡すとキーをinの左側の変数に代入していきます。これをリスト内包表記の要素として取り出します。

Pythonのdictのkeyを値から取得するには?

Pythonのdictのキーを値から取得する方法です。

d = {'cat': 1, 'bird': 1, 'pig': 2}  
target = 1  

keys = [key for key in d if d[key] == target]  
print(keys)  # ['cat', 'bird']  

リスト内包表記で、目的の辞書の値(target)にマッチするアイテムのキーをリストにしています。

Pythonのdictでアイテムを削除するには?

Pythonのdictでアイテムを削除するにはdelを使います。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d = {'cat': 1, 'bird': 2, 'pig': 3}  
del d['cat']  
print(d)  # {'bird': 2, 'pig': 3}  

dictのメソッドのpopを使うと、指定したキーのアイテムを削除できます。

d = {'cat': 1, 'bird': 2, 'pig': 3}  
print(d.pop('cat'))  # 1  
print(d)  # {'bird': 2, 'pig': 3}  

popメソッドはキーが存在しない場合はKeyErrorを送出します。

d = {'cat': 1, 'bird': 2, 'pig': 3}  

try:  
    d.pop('dog')  
except KeyError as e:  
    print(e)  # 'dog'  

Pythonでdictを結合(連結・マージ)するには?

Pythonでdictに別の辞書を結合するにはupdateメソッドや|演算子を使います。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

Pythonのdictをupdateで結合するには?

Pythonのdictのメソッド、updateを使うと辞書に別の辞書を結合できます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'pig': 3, 'frog': 4}  

d1.update(d2)  

print(d1)  # {'cat': 1, 'bird': 2, 'pig': 3, 'frog': 4}  

上記ではd1の辞書にd2の辞書を結合しています。辞書のupdateメソッドに別の辞書を渡すとその辞書が結合されます。
重複するキーがあった場合は、updateに渡した辞書のキーで上書きされます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'bird': 3, 'frog': 4}  

d1.update(d2)  

print(d1)  # {'cat': 1, 'bird': 3, 'frog': 4}  

Pythonのdictを`|`演算子で結合するには?

Pythonの辞書同士は|演算子で結合できます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'pig': 3, 'frog': 4}  

d3 = d1 | d2  

print(d3)  # {'cat': 1, 'bird': 2, 'pig': 3, 'frog': 4}  

上記ではd1d2の辞書を|演算子で結合してd3に代入しています。updateメソッドと同様に同じキーが存在する場合は後者のキーで上書きされます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'bird': 3, 'frog': 4}  

d3 = d1 | d2  

print(d3)  # {'cat': 1, 'bird': 3, 'frog': 4}  

Pythonのdictを`|=`演算子で結合するには?

Pythonの辞書に|=演算子を使うと別の辞書を結合できます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'pig': 3, 'frog': 4}  

d1 |= d2  

print(d1)  # {'cat': 1, 'bird': 2, 'pig': 3, 'frog': 4}  

|=演算子も同じキーが存在する場合は上書きする辞書のキーで上書きされます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'bird': 3, 'frog': 4}  

d1 |= d2  

print(d1)  # {'cat': 1, 'bird': 3, 'frog': 4}  

Pythonのdictを`dict()`や`{}`で結合するには?

Pythonのdictは以下のようにすると結合できます。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'pig': 3, 'frog': 4}  

d3 = dict(**d1, **d2)  
d4 = {**d1, **d2}  

print(d3)  # {'cat': 1, 'bird': 2, 'pig': 3, 'frog': 4}  
print(d4)  # {'cat': 1, 'bird': 2, 'pig': 3, 'frog': 4}  

**演算子で辞書を展開できます。以下は展開して関数の引数にキーをマッチさせています。

def func(cat, bird):  
    print(cat, bird)  # 1 2  

d1 = {'cat': 1, 'bird': 2}  
func(**d1)  

これをdict(){}で行うと、アイテムをセットすることができます。また、{}は重複したキーは上書きされますが、dict()は重複したキーはTypeErrorになるので注意しましょう。

d1 = {'cat': 1, 'bird': 2}  
d2 = {'bird': 3, 'frog': 4}  # birdが重複している  

# {}は同じキーは上書きされる。  
d3 = {**d1, **d2}  
print(d3)  # {'cat': 1, 'bird': 3, 'frog': 4}  

# dict()は同じキーはTypeErrorになる。  
try:  
    dict(**d1, **d2)  
except TypeError as e:  
    print(e)  

Pythonのdictをsort(ソート、整列)するには?

Pythonのdictは、keysやvalues, itemsなどのメソッドを持っています。これらで取得したリストなどをソートするには、sortメソッドやsorted関数を使います。

出典:ソートのテクニック — Python 3.13.5 ドキュメント

sortメソッドはオブジェクトを破壊的にソートします。sorted関数は非破壊的にソートします。破壊的と言うのはオブジェクトの中身を変更するということです。非破壊的と言うのは、ソート後に新しいオブジェクトを返す、と言う意味です。
dictのkeysメソッドはキーの列を返し、valuesメソッドは値の列を返します。itemsメソッドはキーと値のタプル列を返します。

d = {'cat': 2, 'bird': 1, 'pig': 3}  

print(sorted(d.keys()))  # ['bird', 'cat', 'pig']  
print(sorted(d.values()))  # [1, 2, 3]  

# タプル列をキーでソート  
print(sorted(d.items(), key=lambda item: item[0]))  
# [('bird', 1), ('cat', 2), ('pig', 3)]  

# タプル列を値でソート  
print(sorted(d.items(), key=lambda item: item[1]))  
# [('bird', 1), ('cat', 2), ('pig', 3)]  

PythonのdictをJSONに変換するには?

PythonのdictをJSONに変換するにはjsonモジュールのdumpsメソッドを使います。

出典:json --- JSON エンコーダーとデコーダー — Python 3.13.5 ドキュメント

import json  

d = {'cat': 1, 'bird': 2, 'pig': 3}  

print(json.dumps(d))  # {"cat": 1, "bird": 2, "pig": 3}  
print(type(json.dumps(d)))  # <class 'str'>  

json.dumps()にPythonの辞書を渡すと、JSONの文字列に変換できます。あとはこの文字列をファイルに書き込めば、JSONファイルとして保存可能です。

import json  

d = {'cat': 1, 'bird': 2, 'pig': 3}  

# animals.json ファイルに書き込み  
with open('animals.json', 'w', encoding='utf-8') as fout:  
    fout.write(json.dumps(d))  

Pythonのdictを初期化するには?

Pythonのdictを初期化するには{}dict()を使います。

出典:5. 辞書型 (dictionary) — データ構造 — Python 3.13.5 ドキュメント

d1 = {'cat': 1, 'bird': 2}  
print(d1)  # {'cat': 1, 'bird': 2}  

d2 = dict(cat=1, bird=2)  
print(d2)  # {'cat': 1, 'bird': 2}  

{}はキーを文字列としてセットします。dict()はキーに値をkey=valueという形で指定します。

カテゴリー