【Python入門】Pythonのdefaultdictとは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonのdefaultdictは、キーが存在しない場合に自動的に初期値を設定する辞書型オブジェクトです。この機能により、キーが存在するかどうかを確認する手間が省け、コードが簡潔になります。本記事では、defaultdictの使い方や活用方法を初心者向けに解説します。

defaultdictとは?

defaultdictは、Pythonのcollectionsモジュールに含まれるクラスで、通常の辞書と異なり、キーが存在しない場合に自動的に初期値を設定します。これにより、キーが存在するかどうかを確認する必要がなくなり、コードの書き方が簡単になります。

defaultdictの基本情報

  • モジュール: collections
  • 初期値の指定: int, list, set, dict, 関数などを指定可能
  • 主な用途: キーが存在しない場合のエラー回避、簡略化されたコード

defaultdictの特徴/良い点/悪い点

特徴

  • 自動的な初期値設定: キーが存在しない場合に自動で初期値を設定
  • 柔軟な初期値指定: int, list, setなど多様なデータ型を初期値として指定可能
  • コードの簡略化: キーの存在確認が不要になるため、コードが簡潔になる

良い点

  • エラー回避: キーが存在しない場合のエラーを防ぐ
  • コードの簡略化: キーの存在確認が不要になるため、コードが簡潔になる
  • 柔軟性: 多様なデータ型を初期値として指定可能

悪い点

  • メモリ使用量: 初期値が設定されるため、メモリ使用量が増える可能性

defaultdictの新規作成の方法

from collections import defaultdict

# 整数を初期値とするdefaultdict
int_dict = defaultdict(int)

# リストを初期値とするdefaultdict
list_dict = defaultdict(list)

# セットを初期値とするdefaultdict
set_dict = defaultdict(set)

defaultdictの作成の方法(他のデータ型からの変換)

通常の辞書からdefaultdictに変換することは直接的にはできませんが、初期値を設定しつつ辞書をコピーすることで実現可能です。

from collections import defaultdict

# 元の辞書
normal_dict = {'a': 1, 'b': 2}

# defaultdictに変換
default_dict = defaultdict(int, normal_dict)

defaultdictの削除の方法

defaultdict自体を削除するには、通常の辞書と同様にdel文を使用します。

from collections import defaultdict

d = defaultdict(int)
del d

defaultdictのプロパティ一覧

名称機能説明計算量(オーダー)
keys()キーを返すO(n)
values()値を返すO(n)
items()キーと値のペアを返すO(n)
len()要素数を返すO(1)

defaultdictの関数一覧

名称機能説明計算量(オーダー)
getitem()キーに対応する値を返すO(1)
setitem()キーと値を設定するO(1)
delitem()キーを削除するO(1)

defaultdictの比較

  • 通常の辞書: キーが存在しない場合にエラーが発生する
  • setdefault(): キーが存在しない場合にデフォルト値を設定するが、毎回指定が必要
  • defaultdict: キーが存在しない場合に自動的に初期値を設定する

まとめ

defaultdictは、キーが存在しない場合に自動的に初期値を設定することで、コードを簡潔にし、エラーを回避する便利なクラスです。初心者から上級者まで幅広く活用できるため、Pythonプログラミングにおいて重要なツールと言えます。