Pythonのコレクション:知っておくべきことすべて
公開: 2021-04-09Pythonは強力なプログラミング言語です。 モジュール式であり、そのシンプルさ、再利用性、および保守性で知られています。 モジュラープログラミングでは、大規模で複雑なプログラミングタスクが小さなモジュールに分割されます。
この記事では、Pythonのモジュールコレクションについて説明します。 コレクションは機能を改善し、Pythonの汎用の組み込みのdict、list、set、およびtupleコンテナーの代替となります。
「Pythonリスト、タプル、セット、および辞書はユーザー定義のデータ構造であり、それぞれに独自の長所と短所があります。」
目次
Pythonモジュール
モジュールは、一連の関数を実装するPython定義とステートメントを含むファイルです。 importコマンドは、他のモジュールからモジュールをインポートするために使用されます。 Pythonにはいくつかのモジュールが組み込まれています。
ここで、記事の核心に立ち、Pythonのモジュールコレクションについて詳しく学びましょう。
Pythonでのコレクション
Pythonのコレクションは、データのコレクションを格納するコンテナーです。 List、set、tuple、dictなどは、Pythonに組み込まれているコレクションです。 Pythonには、データコレクションを格納するための追加のデータ構造を提供する6つのコレクションモジュールがあります。 これらのPythonモジュールは、組み込みコンテナーのコレクションの操作を強化します。
ここで、Pythonモジュールのコレクションによって提供されるさまざまなコンテナーについて説明します。
1. OrderedDict
OrderedDict()は、キーが挿入される順序を維持する辞書オブジェクトと同様に機能します。 キーを再度挿入する場合は、前の値が上書きされ、キーの位置は変更されません。
例:
コレクションからOrderedDictをインポートします
d1 = collections.OrderedDict()
d1 ['A'] = 1
d1 ['B'] = 2
d1 ['C'] = 3
d1 ['D'] = 4
d1.items()のx、vの場合:
印刷(x、v)
出力:
A 1
B 2
C 3
D 4
2. deque()
Python deque()は、両方の極値からアイテムを追加および削除する最適化されたリストです。
例:
コレクションからdequeをインポートする
list1 = [“ a”、” b”、” c”]
deq = deque(list1)
print(deq)
出力:
deque(['a'、'b'、'c'])
3.カウンター
カウンターは、ハッシュ可能なオブジェクトをカウントするディクショナリオブジェクトのサブグループです。 カウンタ関数は、引数として反復可能な入力を受け取り、ディクショナリとして出力を返します。 キーは反復可能な要素であり、値は要素が反復可能に存在する合計回数です。
例:
コレクションからカウンターをインポートする
c = Counter()
list1 = [1,2,3,4,5,7,8,5,9,6,10]
Counter(list1)
Counter({1:5,2:4})
list1 = [1,2,4,7,5,1,6,7,6,9,1]
c = Counter(list1)
印刷(c [1])
出力:
3
追加のカウンター機能
1. elements()関数
elements()関数は、 Counterオブジェクトに存在する要素のリストを返します。
例:
c = Counter({1:4,2:3})
print(list(c.elements()))
出力:
[1,1,1,1,2,2,2]
ここでは、 Counterオブジェクトはディクショナリ引数を使用して作成されます。 1のカウント数は4、2のカウント数は3です。関数elements()が呼び出され、 cオブジェクトがイテレータを返します。
2. most_common()関数
Counter() Python関数は順序付けられていない辞書を返しますが、 most_common ()関数は各要素数に従って辞書を並べ替えます。
例:
リスト=[1,2,3,4,5,5,5,7,3]
c =カウンター(リスト)
print(c.most_common())
出力:
[((5,3)、(1,1)、(2,1)、(3,2)、(4,1)、(7,1))]
ここで、 most_common関数は、要素の数に従ってソートされたリストを返します。 5は3回来ます。 したがって、リストの要素として最初に来ます。
3. Subtract()関数
subtract()は、反復可能な引数またはマッピング引数を考慮し、その引数で要素数を減算します。
例:
c =カウンター({1:2,2:3})
出力={1:1,2:1}
c.subtract(output)
print(c)
出力:
Counter({1:1,2:2})
4.チェーンマップオブジェクト
チェーンマップクラスは、複数の辞書をグループ化して単一のリストを作成します。 リンクされた辞書は公開されており、map属性からアクセスできます。
例:
コレクションからチェーンマップをインポートする
dict1 = {'w':1、'x':2}
dict2 = {'y':3.'z':4}
chain_map = ChainMap(dict1、dict2)
print(chain_map.maps)
出力:
[{'x':2、'w':1}、{'y':3、'x':4}]
5.Namedtuple
namedtuple()関数は、タプル内の各位置の名前を持つタプルオブジェクトを返します。 タプルオブジェクトの各フィールドのインデックスを記憶する問題を解消するために導入されました。
例:
コレクションからnamedtupleをインポートする
Student = namedtuple('Student'、'firstname、lastname、age')
s1 = Student('Tom'、'Alter'、 '12')
print(s1.firstname)
出力:
Student(firstname ='Tom'、lastname ='Alter'、age = '12')
この例では、クラスの任意のインスタンスのフィールドにアクセスできます。
6. DefaultDict
Python defaultdict()はディクショナリオブジェクトであり、dictクラスのサブクラスです。 すべてのディクショナリメソッドを提供しますが、デフォルトのデータ型として最初の引数を取ります。 存在しないキーにアクセスするとエラーがスローされます。
例:
コレクションからdefaultdictをインポートします
num = defaultdict(int)
num ['one'] = 1
num ['two'] = 2
印刷(num ['three'])
出力:
0
結論
Pythonでのコレクションは、Pythonコレクションモジュールに改善をもたらすことが知られています。 コレクションは、Pythonの2.4バージョンで導入されました。 以降のバージョンでは、多くの変更と改善が期待できます。 この記事では、Pythonの6つの既存のコレクションを例とともに説明し、それらが言語で実装される方法を説明しました。 これらは、学習者の観点から最も重要な概念の1つです。
upGrad独自のコンピューターアプリケーションの学士号プログラムを使用して、Pythonでコレクションを学びます。 このプログラムは、IT業界に参入するために必要なスキルをカバーしています。
python、データサイエンスについて知りたい場合は、データサイエンスのIIIT-B&upGradのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。 、業界のメンターと1対1で、400時間以上の学習とトップ企業との仕事の支援。
世界のトップ大学からオンラインでデータサイエンスコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
Pythonにはすでに4つの組み込みのコレクションデータ型があります。 これらは、リスト、タプル、辞書、およびセットです。 ただし、これらのデータコンテナは一般的な目的で使用されます。 Pythonディクショナリまたは「Dict」は、順序付けられていない要素のコレクションを格納するために使用されるPythonの組み込みデータ構造です。 単一の値を格納する他のPythonデータ構造とは異なり、辞書データ構造は、すべてのキーが一意であるキーと値のペアを格納します。 キーと値のペアの挿入順序を記憶せず、キーを繰り返し処理します。 Pythonのnamedtupleは、さまざまな操作を実行します。 以下は、namedtupleによって実行される最も一般的な操作の一部のリストです。Pythonでコレクションモジュールが必要なのはなぜですか?
次の点は、組み込みのデータコンテナよりもコレクションモジュールを使用することの主な利点を示しています。
コレクションモジュールは、namedtuple、OrderedDict、defaultdict、chainmap、counterなどのこれらのコンテナの特殊なバージョンを提供します。
より最適化されているため、これらのコンテナーは、リスト、タプル、セットなどの従来のデータコンテナーよりも優れた代替手段であることがわかります。
収集モジュールは、構造化データを処理するのに効率的です。
namedtupleのようなデータコンテナは、より少ないメモリを消費し、データを保存および管理するための拡張された操作を提供します。 Pythonの辞書と順序付き辞書の違いは何ですか?
一方、Ordered DictionaryまたはOrderedDictは、キーと値のペアの挿入順序を追跡します。 また、二重にリンクされたリストの実装により、Pythonの通常の辞書よりも多くのメモリを消費します。 同じキーを削除して再挿入すると、OrderedDictが挿入順序を記憶しているため、元の位置に挿入されます。 namedtupleのさまざまな操作は何ですか?
1.アクセス操作:インデックスによるアクセス:名前付きタプルの要素は、辞書とは異なり、インデックスによってアクセスできます。 キー名によるアクセス:要素にアクセスする別の方法は、キー名によるアクセスです。
2.変換操作: make():この関数はnamedtupleを返します。 _asadict():この関数は、マップされた値から構築された順序付きディクショナリを返します。 「**」(二重星)演算子の使用:この関数は、Python辞書を名前付きタプルに変換します。
3.追加の操作: _fileds():この関数は、指定された名前付きタプルのすべてのキー名を返します。 _replace():この関数は、引数としてキー名を取り、それにマップされている値を変更します。