collections
-- コレクションとコンテナのデータ型¶
このモジュールは、該当する CPython モジュールのサブセットを実装しています。
詳しくはオリジナルの CPython ドキュメンテーションを参照してください: collections
.
このモジュールは、様々なオブジェクトを保持/蓄積する高度なコレクションとコンテナのデータ型を実装します。
クラス¶
- class collections.deque(iterable, maxlen[, flags])¶
deque (両端キュー)は、O(1) (処理時間がデータ量に非依存)をサポートするリストのようなコンテナであり、両端キューのどちらかの側から追加やポップできます。次の引数を使用して新しい deque オブジェクトが作成されます。
iterable は deque を作成するときに deque を満たすために使うイテラブルです。初めに空の dequeを 作成するには、空のタプルやリストを指定します。
maxlen を指定する必要があり、deque はこの最大長にバインドされます。deque がいっぱいになると、追加された新しいアイテムは反対側のアイテムを破棄します。
オプションの flags を 1 にすると、項目を追加するときにオーバーフローをチェックするようになります。
deque オブジェクトは
bool
,len
, 反復、添字によるロードとストアをサポートします。その他にも次のメソッドがあります:- append(x)¶
deque の右側に x を追加します。オーバーフローチェックが有効になっており、キューにもう空きがない場合には
IndexError
が発生します。
- appendleft(x)¶
deque の左側に x を追加します。オーバーフローチェックが有効になっており、キューにもう空きがない場合には
IndexError
が発生します。
- pop()¶
deque の右側から項目を削除して返します。項目が存在しない場合には
IndexError
が発生します。
- popleft()¶
deque の左側から項目を削除して返します。項目が存在しない場合は
IndexError
が発生します。
- extend(iterable)¶
イテラブルから取得したすべてのアイテムを deque の右側に追加して deque を拡張します。オーバーフローチェックが有効になっており、deque にもう空きがない場合には
IndexError
が発生します。
- collections.namedtuple(name, fields)¶
これは特定の名前とフィールドセットを持つ新しい名前付きタプル型を作成するためのファクトリ関数です。namedtuple はタプルのサブクラスで、数値インデックスだけでなくシンボル型フィールド名を使った属性アクセス構文でもフィールドにアクセスできます。Fields は、フィールド名を指定する一連の文字列です。CPython との互換性のために、スペースで区切られたフィールドを持つ文字列にすることもできます(これはあまり効率的ではありません)。使用例:
from collections import namedtuple MyTuple = namedtuple("MyTuple", ("id", "name")) t1 = MyTuple(1, "foo") t2 = MyTuple(2, "bar") print(t1.name) assert t2.name == t2[1]
- class collections.OrderedDict(...)¶
追加されたキーの順番を記憶して保持する
dect
型のサブクラスです。順序付けされた辞書を反復すると、キー/項目を追加された順番で返します。from collections import OrderedDict # To make benefit of ordered keys, OrderedDict should be initialized # from sequence of (key, value) pairs. d = OrderedDict([("z", 1), ("a", 2)]) # More items can be added as usual d["w"] = 5 d["b"] = 3 for k, v in d.items(): print(k, v)
出力:
z 1 a 2 w 5 b 3