October 2025
Intermediate to advanced
572 pages
7h 46m
Japanese
リストやシーケンスを自然に補完するデータ構造として辞書があります。辞書とはキーとそれに対応する値を格納するデータ構造です。他のプログラミング言語では連想配列またはハッシュテーブルとも呼ばれています。その多用途性から、動的に追加されたり変更されたりするデータを管理するデータ構造として最適です。新規にプログラムを書く際、データ構造やクラスが確定する前のデータ構造としては辞書を使うとよいでしょう。
辞書における要素の追加と削除は(償却計算量において)定数時間で実行され、単純なリストよりも優れています。そのため、辞書がPythonにおけるオブジェクト指向機能を実現するためのデータ構造であることも理解できるでしょう。また、他のプログラミング言語における連想配列やハッシュテーブルにはない機能を提供する標準ライブラリも用意されています。
Python 3.5以前は、辞書をイテレートするとキーが任意の順序で返されました。つまり、そのイテレートの順序と辞書に挿入した順序は一致しませんでした。動物とその子供を対応付ける辞書の例で説明します。
# Python 3.5
baby_names = {
"cat": "kitten",
"dog": "puppy",
}
print(baby_names) # {"dog": "puppy", "cat": "kitten"}
辞書の挿入順は"cat"、"dog"ですが、出力された順序は"dog"、"cat"でした。この動きは驚くべきものであり、テストケースの再現が難しくなり、デバッグの難易度が上昇します。特に、Python初心者には混乱の元になる動きでした。
このような動きだった理由は、Python ...
Read now
Unlock full access