3章ディクショナリとセット
ユーザのプログラムコードが明示的にディクショナリを使用していないときでも、実行中のPythonプログラムは同時にアクティブなディクショナリをたくさん持っています。
——A. M. Kuchling『Beautiful Code』, 18章「Python's Dictionary Implementation」より[EN-09][JP-04]
dict
型はプログラムで広く使用されるだけでなく、Pythonの基盤も構成しています。モジュールの名前空間、クラスとインスタンスの属性、関数のキーワード引数といった基盤的な構造はディクショナリで実装されています。組み込み関数は__builtins__.__dict__
にあります。
重要な役割を担っているため、Pythonのdict
は高度に最適化されています。Pythonの高性能dict
の背後にあるエンジンはハッシュテーブルです。
本章ではセット(set)もカバーしますが、それはセットもハッシュテーブルで実装されているからです。ハッシュテーブルの仕組みを知ることで、ディクショナリとセットを最大限に活用できるようになります。
本章の概要は次のとおりです。
- 一般的なディクショナリメソッド
- 存在しないキーに対する特別な処理
- 標準ライブラリにある
dict
のバリエーション set
型およびfrozenset
型- ハッシュテーブルの仕組み
- ハッシュテーブルの注意事項(キーの型の制限、予測できない順序など)
3.1 一般的なマップ型
collections.abc
モジュールは、dict
やこれに類似した型のインタフェースを形式化する抽象基底クラスであるMapping
およびMutableMapping
を提供しています(Python 2.6から3.2では、これらのクラスは ...
Get Fluent Python ―Pythonicな思考とコーディング手法 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.