Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonコンテナのデータ型


コレクションには、いくつかのコンテナデータ型があります。これは、dict、list、setなどのPythonの汎用組み込みコンテナの代替です。

一部のコンテナは-

Sr.No。 コンテナと説明
1 namedtuple()
名前フィールドを持つタプルサブクラスを作成するために使用されます
2 deque
リストタイプのデータを使用したキュー
3 カウンター
ハッシュテーブルオブジェクトをカウントするdictのサブクラス
4 ChainMap
複数のマッピングの単一ビューを作成するために使用されます
5 OrderedDict
データが順序付けられた方法で追加されるdictのサブクラス
6 ユーザーリスト
簡単にアクセスできるリストのラッパー。

このモジュールを使用するには、-

を使用してインポートする必要があります
import collections

Deque Object

Dequeは基本的にスタックとキューの構造を一般化したもので、左から右に初期化されます。リストオブジェクトを使用して両端キューを作成します。

Dequeに関連するメソッドのいくつかは-

です。
Sr.No。 メソッドと説明
1 append(x)
dequeの右側に要素xを追加します
2 appendleft(x)
dequeの左側に要素xを追加します
3 clear()
dequeをクリアする
4 count(x)
dequeでのxの出現数をカウントします
5 index(x [、start [、stop]])
xの位置を返します。開始と停止が定義されている場合、その範囲内にあります
6 insert(i、x)
xを位置iの両端キューに挿入します
7 pop()
右側からエレメントを取り外して戻します
8 popleft()
左側からエレメントを取り外して戻します
9 reverse()
dequeの内容を逆にします
10 rotate(n =1)
dequeを右にn回回転します

サンプルコード

import collections as col
my_deque = col.deque('124dfre')
print(my_deque)
print("Popped Item: " + str(my_deque.pop()))
print("Popped Item From Left: " + str(my_deque.popleft()))
print(my_deque)

出力

deque(['1', '2', '4', 'd', 'f', 'r', 'e'])
Popped Item: e
Popped Item From Left: 1
deque(['2', '4', 'd', 'f', 'r'])

カウンターオブジェクト

カウンターは、dict型オブジェクトのサブクラスです。キー値をカウントするために使用できます。カウンターは整数値のみを許可します。

いくつかのカウンター関連のメソッドは-

です
Sr.No。 方法と説明
1 elements()
カウンター値が保持する回数だけ、要素を返します。
2 most_common([n])
このメソッドは、カウンターから最も一般的に使用されるn個の要素のリストを返します。 nが指定されていない場合、すべてを返します。
3 減算(反復可能またはマッピング)
キーが一致する2つのカウンターオブジェクトからカウンター値を減算します。
4 更新(反復可能またはマッピング)
キーが一致する場合、値を置き換えることなく値を追加します。

サンプルコード

import collections as col
text_list = ['ABC','PQR','ABC','ABC','PQR','Mno','xyz','PQR','ABC','xyz']
my_counter = col.Counter()
for element in text_list:
my_counter[element] += 1
print(my_counter)
print(my_counter.most_common(2))

出力

Counter({'ABC': 4, 'PQR': 3, 'xyz': 2, 'Mno': 1})
[('ABC', 4), ('PQR', 3)]

ChainMapオブジェクト

ChainMapは、辞書を1つのユニットにカプセル化するために使用されます。

一部のChainMapメンバーは-

Sr.No。 方法と説明
1 マップ
これは、対応する値を持つキーを返すために使用されます。
2 new_child(m =None)
このメソッドは、チェーンの最初の位置に新しい辞書を挿入するために使用されます。

サンプルコード

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code) #Insert New Child
print("Final Chain: " + str(chain.maps))

出力

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Final Chain: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]

  1. Pythonで最も水が多いコンテナ

    n個の非負の整数a1、a2、...、anのセットがあり、各値は座標(i、a [i])の点を表しているとします。 n本の垂直線は、線iの2つの端点が(i、a [i])と(i、a [0])にあるように存在します。 x軸と一緒に1つのコンテナを形成する2つの線を見つける必要があるため、水量が最大になる2つの列を見つけることが目標です。したがって、配列が[1,8,6,2,5,4,8,3,7]の場合、次のようになります 影付きの部分では、高さが7で、セクションが7つあるため、合計面積は実際には7 * 7=49です。これが出力です。 これを解決するために、次の手順に従います 低:=0、高:=a

  2. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',