
【6日でできるPython入門】組み込み型 辞書
Pythonの辞書(dictionary)は、「名前(キー)」と「値」のペアをひとまとめにして管理できる強力な組み込み型です。他の言語では「連想配列」や「ハッシュマップ」とも呼ばれます。
データの順番よりも「名前でデータを取り出したい」ときに大活躍します。
リストと並び、Pythonプログラミングで最もよく使うデータ構造のひとつです。

1.辞書の基本
1.1. 辞書の作成とアクセス
辞書は波括弧 {}
で作り、キー:値
のペアをカンマ区切りで並べます。
値はどんな型でもよく、キーにはイミュータブル(変更不可)な型(主に文字列や数値、タプルなど)が使えます。
ファイル名: lesson09-1.py
# 生徒の点数を辞書で管理し、操作するプログラム
scores = {'国語': 85, '数学': 92, '理科': 78}
print("各教科の点数:", scores)
print("数学の点数は:", scores['数学'])
print("理科の点数は:", scores['理科'])
empty_dict = {}
print("空の辞書:", empty_dict)
実行結果
各教科の点数: {'国語': 85, '数学': 92, '理科': 78}
数学の点数は: 92
理科の点数は: 78
空の辞書: {}
記述 | 内容 |
---|---|
{'A': 1, 'B': 2} | 2つのキーと値からなる辞書 |
scores['数学'] | 「数学」の点数を取り出す |
empty_dict = {} | 空の辞書 |
1.2. dict()による変換と他の作り方
組み込み関数dict()
を使うと、リストやタプルからも辞書を作れます。
ファイル名: lesson09-2.py
name_pairs = [['suzuki', 'すずき'], ['tanaka', 'たなか']]
name_dict = dict(name_pairs)
print("英語→日本語の名前変換:", name_dict)
pairs2 = ['AB', 'CD']
dict2 = dict(pairs2)
print("1文字ずつペアで辞書化:", dict2)
実行結果
英語→日本語の名前変換: {'suzuki': 'すずき', 'tanaka': 'たなか'}
1文字ずつペアで辞書化: {'A': 'B', 'C': 'D'}
2.辞書の値の追加・削除・更新
2.1. 辞書への要素追加・値の変更・削除
辞書は、キーを指定して新しい値を追加・変更できます。また、del
やpop()
で削除できます。
ファイル名: lesson09-3.py
# 辞書の要素追加・変更・削除の例
user = {'名前': '佐藤', '年齢': 30}
user['性別'] = '女性' # 追加
print("追加後:", user)
user['年齢'] = 31 # 値の更新
print("年齢更新後:", user)
del user['名前'] # 削除
print("名前削除後:", user)
removed = user.pop('性別')
print("性別をpopで削除(返り値):", removed)
print("最終的な辞書:", user)
実行結果
追加後: {'名前': '佐藤', '年齢': 30, '性別': '女性'}
年齢更新後: {'名前': '佐藤', '年齢': 31, '性別': '女性'}
名前削除後: {'年齢': 31, '性別': '女性'}
性別をpopで削除(返り値): 女性
最終的な辞書: {'年齢': 31}
操作例 | 説明 |
---|---|
user['キー名'] = 値 | 新しいキーで追加/既存キーで更新 |
del user['キー名'] | 指定キーの値を削除 |
user.pop('キー名') | 指定キーの値を削除&値を返す。 |
2.2. KeyErrorと存在確認
存在しないキーを指定するとKeyError
になります。
これを避けたい場合はget()
メソッドを使うと便利です。
ファイル名: lesson09-4.py
profile = {'名前': '田中'}
# print(profile['年齢']) # KeyError
print("年齢(get使用):", profile.get('年齢', '未登録'))
実行結果
年齢(get使用): 未登録
3.辞書の主なメソッドと組み込み関数
メソッド名 | 概要 | 例 |
---|---|---|
clear | 全要素を削除 | d.clear() |
copy | 辞書のコピーを返す | d.copy() |
get | キーの値を取得。なければNoneや指定値を返す | d.get('key', 'default') |
fromkeys | キーのリストから値を一律指定した辞書を作る | dict.fromkeys(['a','b'], 0) |
pop | 指定キーの要素を削除&値を返す | d.pop('key') |
popitem | 最後の要素を削除&(キー,値)ペアを返す | d.popitem() |
setdefault | キーがなければ追加、あれば値を返す | d.setdefault('color','blue') |
update | 他の辞書の要素を追加・上書き | d.update({'key': 'value'}) |
組み込み関数 | 概要 | 例 |
---|---|---|
len(dict) | 要素数を返す | len(d) |
list(dict.keys()) | すべてのキーをリストで返す | list(d.keys()) |
list(dict.values()) | すべての値をリストで返す | list(d.values()) |
list(dict.items()) | (キー,値)ペアのリストを返す | list(d.items()) |
辞書型は「名前付きデータ管理」に最適で、プログラムのデータ整理・設定・データベースの代用など、あらゆる場面で活用されます。使い方をしっかりマスターしておきましょう!