Pythonでデータを扱う際によく登場するのが「辞書(dictionary)」です。辞書は「キー」と「値」のペアを使ってデータを整理できる便利なデータ型で、リストやタプルと並んで基本中の基本といえる存在です。本記事では、Python初心者の方に向けて、辞書の基本的な使い方から、実践的な活用方法、便利なメソッドまでを丁寧に解説していきます。Pythonの基礎力をしっかり固めたい方は、ぜひ最後までご覧ください。
辞書(dictionary)とは?基本の構造を理解しよう
Pythonにおける辞書は、「キー(key)」と「値(value)」をセットにして管理するデータ型です。キーは文字列だけでなく、数値やタプルなども使えます。基本の構文は以下の通りです。
person = {"name": "田中", "age": 30, "city": "東京"}
この例では、「name」「age」「city」がキーで、それぞれの値は「田中」「30」「東京」です。
辞書は中括弧 {}
を使って定義し、キーと値の間をコロン :
でつなぎます。複数の要素がある場合は、カンマ ,
で区切ります。
辞書の基本操作:値の取得と更新
辞書から値を取り出すには、キーを指定します。
print(person["name"]) # 出力: 田中
値を変更するのも簡単です。
person["age"] = 31
存在しないキーを指定するとエラーになりますが、安全に値を取得するには get()
メソッドを使うと便利です。
print(person.get("gender", "不明")) # 出力: 不明
要素の追加と削除
辞書に新しいキーと値を追加するには、次のように記述します。
pythonコピーする編集するperson["job"] = "エンジニア"
要素を削除するには del
を使います。
del person["city"]
または pop()
メソッドも使えます。
age = person.pop("age")
print(age) # 出力: 31
辞書のループ処理
辞書をループして処理するには、items()
、keys()
、values()
などのメソッドを使います。
for key, value in person.items():
print(f"{key} は {value} です")
出力例:
name は 田中 です
job は エンジニア です
辞書の便利なメソッド
辞書には便利なメソッドが多く用意されています。一部を紹介します。
keys()
:全てのキーを取得values()
:全ての値を取得items()
:キーと値のペアをタプルで取得update()
:他の辞書と合体
other = {"name": "山田", "age": 28}
person.update(other)
ネストされた辞書の使い方
辞書の中に辞書を持つことも可能です。例えば、複数の人の情報をまとめる場合に使います。
people = {
"user1": {"name": "佐藤", "age": 25},
"user2": {"name": "鈴木", "age": 32}
}
アクセスするには、キーを2段階で指定します。
print(people["user1"]["name"]) # 出力: 佐藤
実用例:辞書でデータを集計する
辞書はデータの集計にもよく使われます。以下は、リスト内の文字列の出現回数をカウントする例です。
colors = ["赤", "青", "赤", "緑", "青", "赤"]
count = {}
for color in colors:
count[color] = count.get(color, 0) + 1
print(count) # 出力: {'赤': 3, '青': 2, '緑': 1}
このように get()
を活用すると、簡潔でエラーのないコードになります。
defaultdict を使ってもっと便利に
標準ライブラリ collections
の中には、辞書をさらに便利にする defaultdict
があります。キーが存在しない場合に、自動で初期値を設定してくれる機能です。
from collections import defaultdict
count = defaultdict(int)
for color in colors:
count[color] += 1
print(dict(count)) # 出力: {'赤': 3, '青': 2, '緑': 1}
辞書型とJSONの関係
辞書はJSONデータとの互換性が高いため、API通信や設定ファイルの扱いにも使えます。
import json
data = {"name": "田中", "age": 30}
json_data = json.dumps(data, ensure_ascii=False)
print(json_data) # 出力: {"name": "田中", "age": 30}
parsed = json.loads(json_data)
print(parsed["name"]) # 出力: 田中
dumps()
で辞書をJSON形式に変換し、loads()
で再び辞書として読み込みます。
まとめ:辞書の力を使いこなそう
辞書はPythonにおける非常に重要なデータ型です。リストとは異なり、名前(キー)で値にアクセスできるため、データの構造化や柔軟な操作が可能になります。初心者のうちは慣れないかもしれませんが、繰り返し使うことで理解が深まり、より高度なPythonプログラムの土台となります。まずはこの記事で紹介した操作から、ぜひ手を動かして試してみてください。