カテゴリ: Python 更新日: 2025/12/14

Pythonの辞書にデフォルト値を設定する方法!get()とdefaultdictの使い方

Pythonの辞書にデフォルト値を設定する方法!get()とdefaultdictの使い方
Pythonの辞書にデフォルト値を設定する方法!get()とdefaultdictの使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonの辞書で、キーがない場合にデフォルトの値を返したいんですが、どうすればいいですか?」

先生

「いい質問です。Pythonには辞書のキーがない場合でもエラーを出さずに、代わりにデフォルト値を返す方法がいくつかあります。代表的なのはget()メソッドと、collections.defaultdictという便利なクラスです。」

生徒

「get()メソッドとdefaultdictはどう違うんですか?具体的にどう使うのか教えてください!」

先生

「それでは基本からわかりやすく説明しますね!」

1. Pythonの辞書とは?

1. Pythonの辞書とは?
1. Pythonの辞書とは?

辞書(dictionary)は「キー」と「値」の組み合わせを保存するデータの入れ物です。例えば、「りんご:赤」「バナナ:黄色」のように、名前(キー)から情報(値)を取り出せます。

辞書は波かっこ{}で囲み、キーと値をコロン:でつなげて書きます。


colors = {"りんご": "赤", "バナナ": "黄色"}
print(colors["りんご"])  # 赤と表示される

2. 辞書のキーがないときにエラーが出る問題

2. 辞書のキーがないときにエラーが出る問題
2. 辞書のキーがないときにエラーが出る問題

辞書で存在しないキーを指定すると、KeyErrorというエラーになります。例えば:


print(colors["みかん"])  # KeyError: 'みかん'

これは「みかん」というキーが辞書にないためです。これを防ぐのが、今回のテーマの「デフォルト値を使う方法」です。

3. get()メソッドでデフォルト値を設定する方法

3. get()メソッドでデフォルト値を設定する方法
3. get()メソッドでデフォルト値を設定する方法

get()は辞書のキーに対応する値を取り出すメソッドで、もしキーがなければ「デフォルト値」を返すように設定できます。


colors = {"りんご": "赤", "バナナ": "黄色"}

# キーが存在するとき
print(colors.get("りんご"))  # 赤

# キーがないとき、None(何もない状態)が返る
print(colors.get("みかん"))  # None

# キーがないときにデフォルト値を指定できる
print(colors.get("みかん", "オレンジ"))  # オレンジ

このように、get()なら辞書にないキーを指定してもエラーにならず、好きな値を返せます。

4. defaultdictを使って辞書のデフォルト値を設定する方法

4. defaultdictを使って辞書のデフォルト値を設定する方法
4. defaultdictを使って辞書のデフォルト値を設定する方法

defaultdictは、collectionsモジュールにある特別な辞書で、キーがないとき自動でデフォルトの値を作ってくれます。

たとえば、キーがないときに「0」を返す整数用の辞書を作ることができます。


from collections import defaultdict

# int()は0を返すので、初期値が0の辞書になる
count = defaultdict(int)

print(count["りんご"])  # 0(まだキーはないけど自動で0になる)

count["りんご"] += 1
print(count["りんご"])  # 1

通常の辞書だと、存在しないキーにアクセスするとエラーになりますが、defaultdictなら自動で初期値を作ってくれるので便利です。

5. defaultdictの他の使い方

5. defaultdictの他の使い方
5. defaultdictの他の使い方

defaultdictは他にも、文字列やリストなど好きな型のデフォルト値を設定できます。例えば空のリストがデフォルトなら:


from collections import defaultdict

words = defaultdict(list)

words["果物"].append("りんご")
words["果物"].append("バナナ")

print(words)  # {'果物': ['りんご', 'バナナ']}
print(words["野菜"])  # [](まだ何も入っていないけど空のリストが返る)

このように、辞書の値をリストとして扱うときに、キーがない場合でもすぐに追加処理ができます。

6. get()とdefaultdictの使い分け方

6. get()とdefaultdictの使い分け方
6. get()とdefaultdictの使い分け方
  • get()は既存の普通の辞書で使い、キーがないときだけ一時的にデフォルト値を返したい場合に便利。
  • defaultdictは新しく辞書を作るときに使い、キーがない場合でも自動でデフォルト値を用意して扱いやすくしたいときに使う。

目的や場面に応じて使い分けましょう。

7. キーの存在を確認しながら安全に値を取り出す方法

7. キーの存在を確認しながら安全に値を取り出す方法
7. キーの存在を確認しながら安全に値を取り出す方法

辞書のキーがあるかどうか確かめたいときは、in演算子を使います。


colors = {"りんご": "赤"}

key = "バナナ"
if key in colors:
    print(colors[key])
else:
    print(f"{key}は辞書にありません。")

こうすると、存在しないキーを間違って使ってエラーになるのを防げます。

8. Pythonの辞書でよく使う便利なテクニック

8. Pythonの辞書でよく使う便利なテクニック
8. Pythonの辞書でよく使う便利なテクニック
  • get()で簡単にデフォルト値を設定できる
  • defaultdictで自動的に初期値を作成してくれる辞書を作れる
  • in演算子でキーの存在を確認しながら安全に操作できる
  • 普通の辞書と使い分けて効率よくプログラムを書こう

まとめ

まとめ
まとめ

Pythonの辞書にデフォルト値を設定する考え方を振り返ろう

この記事では、Pythonの辞書において「キーが存在しない場合にどう振る舞うか」という、とても重要なポイントを学んできました。Pythonの辞書は、キーと値をセットで管理できる便利なデータ構造ですが、存在しないキーをそのまま指定するとエラーが発生してしまいます。初心者の方が最初につまずきやすい部分でもあり、ここを理解できるかどうかで、辞書操作への苦手意識が大きく変わってきます。

その問題を解決する方法として、まず紹介したのがget()メソッドです。get()を使えば、キーが存在しない場合でもエラーにならず、あらかじめ決めたデフォルト値を返すことができます。この仕組みを知っているだけで、辞書を使ったプログラムは一気に安全で書きやすくなります。特に、設定情報や入力データを扱う場面では、get()は非常に登場回数の多いメソッドです。

get()メソッドの役割と使いどころ

get()メソッドは、すでにある普通の辞書に対して「もしなければこの値を使う」という考え方で使います。一時的に値を取り出したい場合や、存在チェックを簡単に済ませたい場合に向いています。if文でキーの有無を確認するよりも、コードが短くなり、読みやすくなるのも大きなメリットです。

また、デフォルト値を指定しなかった場合はNoneが返るという点も重要です。Noneは「何もない状態」を表す特別な値なので、あとから条件分岐と組み合わせて使うこともできます。get()は、辞書を安全に扱うための基本中の基本として、ぜひ身につけておきたい方法です。

defaultdictで辞書の使い方が変わる

次に紹介したdefaultdictは、辞書そのものの性質を少し変えた、より便利な仕組みです。defaultdictを使うと、キーが存在しない場合でも、自動的に初期値を作成してくれます。整数、リスト、文字列など、用途に応じてデフォルト値を自由に設定できるため、データの集計や分類処理で非常に力を発揮します。

たとえば、カウント処理では初期値が0の辞書が欲しくなりますし、グループ分けでは空のリストを自動で用意してほしい場面がよくあります。そうした処理を、if文を書かずに自然な形で実現できるのがdefaultdictの強みです。Pythonらしい簡潔なコードを書くうえで、覚えておくと非常に役立ちます。

サンプルプログラムで理解を深めよう


from collections import defaultdict

# 生徒の点数を教科ごとにまとめる例
scores = defaultdict(list)

scores["数学"].append(80)
scores["数学"].append(90)
scores["英語"].append(75)

print(scores["数学"])
print(scores["国語"])  # まだ登録していないが空のリストが返る

このように、defaultdictを使えば「キーがあるかどうか」を意識せずに、そのまま処理を書き進めることができます。初心者のうちは少し難しく感じるかもしれませんが、使い慣れてくると手放せなくなる便利な仕組みです。

get()とdefaultdictの使い分けを意識しよう

get()とdefaultdictは、どちらも「キーがない場合」に対応するための方法ですが、役割は少し異なります。既存の辞書から安全に値を取り出したいときはget()、これからデータをどんどん追加していく辞書を作りたいときはdefaultdict、と考えると分かりやすいでしょう。

どちらを使うかを意識して選べるようになると、Pythonの辞書操作は一段レベルアップします。無理にどちらか一方だけを使う必要はなく、場面に応じて使い分けることが大切です。

先生と生徒の振り返り会話

生徒「辞書でエラーが出る理由が、ようやく分かりました。」

先生「キーが存在しないときの動きを知っておくのは、とても大事なんだ。」

生徒「get()なら簡単にデフォルト値を返せるのが便利ですね。」

先生「そうだね。短いコードで安全に書けるのが魅力だよ。」

生徒「defaultdictは、集計やリスト管理に向いているのも分かりました。」

先生「その理解ができれば、辞書を使ったプログラムが一気に書きやすくなるよ。」

カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本