Python では、defaultdict は、辞書に存在しないキーのデフォルト値を自動的に設定できる特別なタイプの辞書です。このタイプの辞書は、コレクション モジュールで定義されます。より便利で使いやすい辞書を提供します。
最初に、defaultdict を含むコレクション モジュールをインポートする必要があります。これは、Python コードの先頭に次のコード行を追加することで実現できます:
from collections import defaultdict
defaultdict の作成は、構文的には Python 辞書の作成と同じです。コンストラクターのパラメーターとして、defaultdict の型を使用するだけで済みます。たとえば、整数を格納するdefaultdictを作成したい場合は、次のコードを使用できます:
int_dict = defaultdict(int)
文字列をdefaultdictに格納したい場合は、次のコードを使用できます:
str_dict = defaultdict(str)
これら 2 つの場合 どちらの場合も、defaultdict コンストラクターに型を渡すことによって、新しい defaultdict インスタンスを定義します。このタイプは、defaultdict のすべてのキーに対応するデフォルト値に設定されます。
defaultdict のキーにアクセスしようとしたときに、キーが存在しない場合は、コンストラクターに渡された型に対応するデフォルト値が自動的に設定されます。たとえば、以下のコードでは、defaultdict を使用して人の年齢を保存し、デフォルト値を 0 に設定します。
age_dict = defaultdict(int) age_dict['alice'] = 25 age_dict['bob'] = 30 age_dict['charlie'] print(age_dict)
出力は {‘alice’: 25, ‘bob’: 30, となります。 ‘charlie’: 0}、‘charlie’ がデフォルトの辞書にない場合、デフォルト値 0 が自動的に埋められます。
この例では、デフォルトの辞書 ‘alice’ と ‘bob’ に 2 つのキーを追加し、辞書にない別のキー ‘charlie’ を直接クエリしました。 ‘charlie’ は辞書に存在しないため、defaultdict は、そのキーに対応する値を、コンストラクターで渡された対応する型のデフォルト値 (この場合は整数 0) に自動的に設定します。これは実際に期待された結果であることがわかります。
defaultdict 関数にデフォルト値として関数を提供することで、デフォルト値を定義することもできます。この関数は、キーが辞書にない場合に呼び出され、必要なデフォルト値を返します。たとえば、次のコードを使用して、辞書からキーをデフォルト値として取得する関数を定義できます:
def return_key(): return "unknown" key_dict = defaultdict(return_key) key_dict['apple'] = 'fruit' print(key_dict['pear']) print(key_dict['banana'])
出力は次のようになります:
unknown
unknown
この例では、単純に「unknown」を返す関数 return_key() を定義します。次に、デフォルトの辞書を作成し、この関数をデフォルト値として使用して定義します。キー「pear」と「banana」にアクセスしようとすると、デフォルト値「unknown」が返されます。しかし、辞書に「apple」というキーを追加すると、「fruit」という結果が得られました。
以上がPythonでのデフォルト値辞書の応用とdefaultdictの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。