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

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...

人工知能

『ジュリエット・パウエル&アート・クライナー、The AI Dilemma – インタビューシリーズの著者』

『AIのジレンマ』は、ジュリエット・パウエルとアート・クライナーによって書かれましたジュリエット・パウエルは、著者であ...

データサイエンス

「2023年にデータサイエンスFAANGの仕事をゲットする方法は?」

データサイエンスは非常に求められる分野となり、FAANG(Facebook、Amazon、Apple、Netflix、Google)企業での就職は大きな成...

人工知能

「Ami Hever、UVeyeの共同創設者兼CEO - インタビューシリーズ」

עמיר חבר הוא המנכל והמייסד של UVeye, סטארט-אפ ראיה ממוחשבת בלמידה עמוקה, המציבה את התקן הגלובלי לבדיקת רכבים עם זיהוי...

人工知能

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

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

人工知能

キャルレールの最高製品責任者、ライアン・ジョンソンへのインタビューシリーズ

ライアンは、初期のスタートアップからフォーチュン100の組織まで、多様なテクノロジーと製品開発のリーダーシップ経験を15年...