PythonのCollectionsモジュールについてすべて

「PythonのCollectionsモジュールのすべてを解説!」

皆さんご存知のように、Pythonには固有のデータ型ヒーローが存在します – リスト、タプル、辞書、そして悪名高いセットです。しかし、Pythonの正義のリーグには、その中のスーパーマンとして「Collections」という名前の存在があります。この記事では、Collectionsの世界に深く潜り込み、その使用場面と利点を理解します。

Collections

Pythonのcollectionsモジュールは、リスト、タプル、セット、辞書などのPythonの組み込みデータ型の代替となる、特化したコンテナデータ型のセットを実装しています。

では、collectionsモジュールの各機能の重要性を理解しましょう。

namedTuple

は、クラスを完全に定義する必要なく、構造化されたデータを格納するための簡単な方法を提供する、collectionsのモジュールです。タプルにインデックスでアクセスする代わりに、クラスに変換され、各識別子の名前に基づいてアクセスすることができます。

namedTuple

上記の例では、2行目でEmployeeという名前のnamedTupleを作成しています。これは、Employeeレコードを格納するために使用できるクラス変数を作成します。

namedTuple — 2

namedTupleはインデックスを使用してアクセスすることもでき、上記の例ではディクショナリに簡単に変換することもでき、タプルの展開もサポートします。

Counter

Counterは、コレクション(リスト、タプル、文字列)内の要素の出現回数を数えるために使用されます。要素をキーとし、特定の要素の出現回数を値とする辞書を返します。

Counter

上記の例では、Counterはリスト内の各要素の出現回数を辞書形式で返しています。Counterのmost_common(k)メソッドは、最も頻繁に繰り返されるk個の要素を返します。また、Counterの足し算、引き算、共通要素の抽出、および結合も行えます。

deque

deque(デック)は、要素の挿入や削除を両端から簡単に行うための最適化されたリストとしてよく参照されます。O(1)の計算量で両端から要素を追加または削除することができます。

deque

上記の例では、appendおよびappend-leftメソッドを使用して両端に簡単に要素を追加することができます。

deque — 2

リストと同様に、dequeは逆順や回転の操作、要素の削除(pop、pop leftメソッド)も提供しています。

ChainMap

ChainMapは、データをコピーせずに複数の辞書を単一のビューに結合するために使用されます。名前の通り、マッピング(辞書)はチェーンに組織され、同じ順序でそれらにアクセスおよび検索することができます。辞書のキーが両方の辞書に存在する場合、チェーン内の最新の辞書が常に優先されます。

ChainMap

defaultdict

は、キーのない辞書を作成する際にデフォルト値を設定するために使用されます。ディクショナリとdefaultdictの違いは、defaultdictを使用して存在しないキーにアクセスしようとした場合、KeyErrorを発生させずに指定されたデフォルト値を返す点です。

辞書を使用した場合
defaultdict

Ordereddict

は、要素が入力された順序を記憶する辞書です。OrderedDictにアクセスしようとした場合、要素は挿入された順序で返されます。

OrderedDict

UserDict

UserDictは、カスタムな動作を持つ辞書を作成したい場合に役立ちます。たとえば、入力された値が自動的に大文字に変換される辞書を作成したい場合は、UserDictが役立ちます。

UserDict

UserListおよびUserStringにも同様のことが適用されます。

Colabノートブックの共有はこちら:コード

楽しく学びましょう…..

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

ジョシュ・フィースト、CogitoのCEO兼共同創業者 - インタビューシリーズ

ジョシュ・フィーストは、CogitoのCEO兼共同創業者であり、感情と会話AIを組み合わせた革新的なプラットフォームを提供するエ...

人工知能

「Zenの共同創設者兼CTO、イオン・アレクサンドル・セカラ氏によるインタビューシリーズ」

創業者兼CTOであるIon-Alexandru Secaraは、Zen(PostureHealth Inc.)の開発を牽引しており、画期的な姿勢矯正ソフトウェア...

人工知能

「マーシャンの共同創設者であるイータン・ギンスバーグについてのインタビューシリーズ」

エタン・ギンズバーグは、マーシャンの共同創業者であり、すべてのプロンプトを最適なLLMに動的にルーティングするプラットフ...

人工知能

「マーク・A・レムリー教授による生成AIと法律について」

データサイエンス内で新しい分野が現れ、研究内容が理解しにくい場合は、専門家やパイオニアと話すことが最善です最近、私た...

人工知能

ムーバブルインクのCEO兼共同創設者であるヴィヴェク・シャルマ氏についてのインタビュー・シリーズ

ビヴェクは2010年にムーバブルインクを共同設立し、急速な成長を遂げながら、600人以上の従業員を擁し、世界有数の革新的なブ...

人工知能

Aaron Lee、Smith.aiの共同設立者兼CEO - インタビューシリーズ

アーロン・リーさんは、Smith.aiの共同創業者兼CEOであり、AIと人間の知性を組み合わせて、24時間365日の顧客エンゲージメン...