Pythonプログラミング言語には4つのコレクションデータ型があります- リスト 、 タプル、セット そして 。だが また、コレクションと呼ばれる組み込みモジュールが付属しています。このモジュールには、基本的に4つのデータ型の欠点をカバーする特殊なデータ構造があります。このブログでは、これらの特殊なデータ構造のそれぞれについて詳しく説明します。以下は、このブログに含まれている主題です。
Pythonのコレクションとは何ですか?
Pythonのコレクションは、基本的にコンテナデータ型、つまりリスト、セット、タプル、辞書です。それらは、宣言と使用法に基づいて異なる特性を持っています。
リストは角括弧で宣言され、変更可能で、重複する値を格納し、インデックスを使用して要素にアクセスできます。
タプルは順序付けられており、本質的に不変ですが、タプル内に重複するエントリが存在する可能性があります。
どのスキャナークラスメソッドが文字列を読み取るか
セットは順序付けられておらず、角括弧で囲まれています。インデックスが作成されておらず、重複するエントリもありません。
辞書にはキーと値のペアがあり、本質的に変更可能です。辞書を宣言するために角括弧を使用します。
これらは、Pythonの汎用組み込みコンテナデータ型です。しかし、私たち全員が知っているように、Pythonには常に少し余分なものがあります。特殊なデータ構造を持つcollectionsという名前のPythonモジュールが付属しています。
特殊なコレクションデータ構造
コレクション Pythonのモジュール Pythonの組み込みコンテナデータ型に代わるものを提供する特殊なデータ構造を実装します。以下は、コレクションモジュールの特殊なデータ構造です。
- namedtuple()
- そして
- チェーンマップ
- カウンター
- OrderedDict
- defaultdict
- UserDict
- UserList
- UserString
namedtuple()
名前付きエントリを持つタプルを返します。これは、タプルの各値に名前が割り当てられることを意味します。インデックス値を使用して要素にアクセスする問題を克服します。 namedtuple()を使用すると、特定の要素を取得するためにインデックス値を覚えておく必要がないため、これらの値にアクセスしやすくなります。
使い方?
まず、コレクションモジュールをインポートする必要があります。インストールは必要ありません。
コレクションからnamedtupleをインポートします
次のコードを見て、namedtupleの使用方法を理解してください。
a = namestuple( 'courses'、 'name、tech')s = a( 'data science'、 'python')print(s)#出力はcourses(name = 'python'、tech = 'python')になります
リストを使用して名前付きタプルを作成するにはどうすればよいですか?
s._make(['data science'、 'python'])#出力は以前と同じになります。
そして
「deck」と発音されるdequeは、挿入と削除を簡単に実行できるように最適化されたリストです。
使い方?
#コレクションから両端キューを作成するimport deque a = ['d'、 'u'、 'r'、 'e'、 'k'] a1 = deque(a)print(a1)#出力はdeque([' d '、' u '、' r '、' e '、' k '])
次に、dequeからアイテムを挿入および削除する方法を見てみましょう。
a1.append( 'a')print(a1)#出力はdeque(['d'、 'u'、 'r'、 'e'、 'k'、 'a'])a1.appendleft( ' e ')print(a1)#出力はdeque([' e '、' d '、' u '、' r '、' e '、' k '、' a '])になります
当然のことながら、コンポーネントの挿入はdequeを利用して強化されており、コンポーネントを削除することもできます。
a1.pop()print(a1)#出力はdeque(['e'、 'd'、 'u'、 'r'、 'e'、 'k'])a1.popleft()print(a1 )#出力はdeque(['d'、 'u'、 'r'、 'e'、 'k'])になります
組み込みデータ型と同様に、両端キューで実行できる操作は他にもいくつかあります。要素を数えたり、両端キューをクリアしたりするようなものです。
チェーンマップ
これは、複数のマッピングの単一のビューを作成できるクラスのような辞書です。基本的に、他のいくつかの辞書のリストを返します。複数のキーと値のペアを持つ2つのディクショナリがあるとします。この場合、ChainMapは、両方のディクショナリを含む単一のリストを作成します。
iOS開発者は何をしますか
使い方?
コレクションからimportChainMap a = {1: 'edureka'、2: 'python'} b = {3: 'データサイエンス'、4: '機械学習'} c = ChainMap(a、b)print(c)#the出力はChainMap [{1: 'edureka'、2: 'python'}、{3: 'データサイエンス'、4: '機械学習'}]になります
要素にアクセスまたは挿入するには、キーをインデックスとして使用します。ただし、ChainMapに新しい辞書を追加するには、次のアプローチを使用します。
a1 = {5: 'AI'、6: 'ニューラルネットワーク'} c1 = c.new_child(a1)print(c1)#出力はChainMap [{1: 'edureka'、2: 'python'}、{ 3: 'データサイエンス'、4: '機械学習'}、{5: 'AI'、6: 'ニューラルネットワーク'}]
カウンター
これは、ハッシュ可能なオブジェクトをカウントするために使用される辞書サブクラスです。
使い方?
コレクションからimportCounter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter(a)print(c)#出力はCounter =({1: 4、2:1、3:4、4:2})
辞書で実行できる操作に加えて、Counterにはさらに3つの操作があります。
- 要素関数–カウンター内のすべての要素を含むリストを返します。
- Most_common()–カウンター内の各要素の数を含むソート済みリストを返します。
- Subtract()–反復可能なオブジェクトを引数として取り、Counter内の要素の数を差し引きます。
OrderedDict
これは、エントリが追加された順序を記憶する辞書サブクラスです。基本的に、キーの値を変更しても、辞書に挿入された順序のため、位置は変更されません。
JavaScriptでアラートを出す方法
使い方?
コレクションからimportOrderedDict od = OrderedDict()od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print(from)#出力はOrderedDict [(1、 'e')、(2、 'd')、(3、 'u')、 (4、 'r')、(5、 'e')、(6、 'k')、(7、 'a')]
ディクショナリにどの値が挿入されるかは関係ありません。OrderedDictは挿入された順序を記憶し、それに応じて出力を取得します。キーの値を変更しても。たとえば、キー値4を8に変更しても、出力の順序は変わりません。
defaultdict
これは、ファクトリ関数を呼び出して欠落値を提供する辞書サブクラスです。一般に、不足しているキー値がディクショナリで呼び出されても、エラーはスローされません。
使い方?
コレクションからimportdefaultdict d = defaultdict(int)#タイプも指定する必要があります。 d [1] = 'edureka' d [2] = 'python' print(d [3])#keyerrorではなく0として出力を返します。
UserDict
このクラスは、ディクショナリオブジェクトのラッパーとして機能します。このクラスの必要性は、dictから直接サブクラス化する必要性から来ました。基礎となる辞書が属性になるため、このクラスでの作業が容易になります。
クラスcollections.UserDict([initialdata])
このクラスは辞書をシミュレートします。インスタンスのコンテンツは、UserDictクラスの「data」属性でアクセスできる通常の辞書に保持されます。初期データの参照は、他の目的で使用するために保持されません。
UserList
このクラスは、リストオブジェクトのラッパーのように機能します。これは、クラスのような他のリストの便利な基本クラスであり、それらから継承して既存のメソッドをオーバーライドしたり、新しいメソッドを追加したりすることもできます。
このクラスの必要性は、リストから直接サブクラス化する必要性から来ました。基になるリストが属性になるため、このクラスの操作が簡単になります。
クラスcollections.UserList([list])
リストをシミュレートするクラスです。インスタンスの内容は、通常のリストに保持されます。リストのサブクラスは、競合なしまたは1回の競合で呼び出すことができるコンストラクターを提供するために使用されます。
このブログでは、Pythonのコレクションモジュールに付属する特殊なデータ構造について学びました。最適化により、パフォーマンスが向上し、結果が向上します。同じことが私たち自身のキャリアやスキルにも当てはまります。学習を開始し、プログラミングの認識方法を最適化したい場合は、edurekaに登録してください。 Pythonで無限の可能性を解き放ちます。
何か質問がありますか?コメントでそれらに言及してください、そして、我々はできるだけ早くあなたに返事をします。