Pythonオーダードセット

Python を使用したさまざまな方法で順序セットを作成する方法について学習します。順序付きセットは、データの順序を保存できるデータ構造であり、データの位置を挿入した順序で固定しておく必要がある場合に使用されます。なお、 値の位置が固定されていると宣言すると、順序セットを反復することができます。これは、順序セットを意味します。ただし、セット内では位置が固定されていないため、反復中にサブスクライブ可能エラーが発生します。

例:

input_dataSet = {プリンス、アディティア、プラヴィール、シブ}

順序なしセットの場合の出力: {Aditya、Prince、Shiv、Praveer}、あなたの側の位置はランダムです

順序付きセットの場合の出力: {プリンス、アディティヤ、プラヴィア、シブ}

説明: Python ではご存知のとおり、このセットを複数回印刷すると、毎回、同じデータセットの項目のランダムな位置が取得されます。

ただし、順序付きセットの場合は、アイテムを挿入したのと同じ順序で毎回同じデータセットを取得します。

Python で順序付きセットを作成するには 3 つの方法があります。

  • を使用することで、 辞書 データ構造
  • を使用することで、 リスト データ構造
  • 順序付きセットモジュール(またはクラス)を使用する

辞書データ構造を使用した順序付きセット

辞書データ構造を使用して順序付きセットを作成できます。辞書自体が順序付きデータ構造であり、セット項目をキーとして使用します。これは、キーが辞書内で一意であり、値の場所に空の文字列を作成できるためです。以下で説明する実装を見てみましょう。

Python3




# Creation of ordered set using the dict data structure> dictionary> => {> 'Prince'> : '> ', '> Aditya> ': '> ',> > 'Praveer'> : '> ', '> Prince> ': '> ', '> Shiv> ': '> '}> print> (dictionary)> # For accessing only keys from the dictionary> for> key> in> dictionary.keys():> > print> (key, end> => ' '> )>

出力:

{'Prince': '', 'Aditya': '', 'Praveer': '', 'Shiv': ''} Prince Aditya Praveer Shiv 

リストデータ構造を使用した順序付きセット

リスト データ構造を使用して、重複要素を削除することで順序セットを作成できます。以下で説明する実装を見てみましょう。

Python3




def> removeduplicate(data):> > countdict> => {}> > for> element> in> data:> > if> element> in> countdict.keys():> > > # increasing the count if the key(or element)> > # is already in the dictionary> > countdict[element]> +> => 1> > else> :> > # inserting the element as key with count = 1> > countdict[element]> => 1> > data.clear()> > for> key> in> countdict.keys():> > data.append(key)> dataItem> => [> 'Prince'> ,> 'Aditya'> ,> 'Praveer'> ,> 'Prince'> ,> 'Aditya'> ,> 'Shiv'> ]> print> (> 'Before removing duplicate elements from dataItems'> , dataItem)> removeduplicate(dataItem)> print> (> 'Created ordered set by removing duplicate elements'> , dataItem)>

出力:

Before removing duplicate elements from dataItems ['Prince', 'Aditya', 'Praveer', 'Prince', 'Aditya', 'Shiv'] Created ordered set by removing duplicate elements ['Prince', 'Aditya', 'Praveer', 'Shiv'] 

順序集合モジュール(またはクラス)を使用した順序集合

デフォルトでは、Python には順序なしセットがありますが、順序付きセットを作成するには、以下に示すように、pip パッケージ インストーラーによって順序付きセットという名前のモジュールをインストールする必要があります。

オーダードセットモジュールのインストール方法

pip パッケージ インストーラーを使用して、以下に示すオーダード セット モジュールをダウンロードします。

pip install ordered_set 

順序付けされたセットの構文:

orderedSet(Listname) 

例:

ここで、さらに詳しく説明するために、順序付きセットを反復してみましょう。以下で説明するように、セットは反復できないためです。

Python3




from> ordered_set> import> OrderedSet> createOrderedSet> => OrderedSet(> > [> 'GFG'> ,> 'is'> ,> 'an'> ,> 'Excellent'> ,> > 'Excellent'> ,> 'platform'> ])> print> (createOrderedSet)> # we are able to iterate it similar to list data type> for> index> in> range> (> len> (createOrderedSet)):> > print> (createOrderedSet[index], end> => ' '> )>

出力:

OrderedSet(['GFG', 'is', 'an', 'Excellent', 'platform']) GFG is an Excellent platform 

時間計算量: O(n)、 ここで、n は順序付きセット内の要素の数です。

補助スペース:O(n) ここで、n は順序付きセット内の要素の数です。