PythonのOrderedDict
OrderedDictは、Pythonのdictオブジェクトのサブクラスです。 OrderedDictとdictの唯一の違いは、OrderedDictでは、挿入されたキーの順序を維持することです。口述では、順序付けが行われる場合と行われない場合があります。
OrderedDictは、コレクションにある標準ライブラリクラスです。 モジュール。
最初に使用するには、コレクションをインポートする必要があります 標準ライブラリモジュール。
import collections
このセクションでは、OrderedDictの操作と、OrderedDictとDictの違いについて説明します。
DictとOrderedDictにいくつかのキーと値を入れることができます。この例では、Dictの順序が異なる場合があることがわかります。しかし、OrderedDictの場合。修正されます。
サンプルコード
import collections #Create normal dict my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) print() #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item)
出力
('AA', 11) ('CC', 33) ('BB', 22) ('DD', 44) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44)
指定されたキーの値を変更する
指定されたキーの値が変更されても、OrderedDictのキーの順序は変更されません。このステートメントは、Dictタイプのオブジェクトに当てはまる場合と当てはまらない場合があることがわかります。
サンプルコード
import collections #Create normal dict my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) #Change the value for key BB my_dict['BB'] = 100 print('After changing in Dict') for item in my_dict.items(): print(item) print() #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Change the value for key BB my_ord_dict['BB'] = 100 print('After changing in Ordered Dict') for item in my_ord_dict.items(): print(item)
出力
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After changing in Dict ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 100) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After changing in Ordered Dict ('AA', 11) ('BB', 100) ('CC', 33) ('DD', 44)
OrderedDictの要素の削除と再挿入
OrderedDictから1つの要素が削除され、そのキーと値に対して再挿入操作を実行すると、その要素が後ろにプッシュされます。挿入中は順序を維持していましたが、削除の場合は順序情報を削除し、再挿入の新しいエントリとして扱います。
サンプルコード
import collections #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Delete item in key BB my_ord_dict.pop('BB') print('After Deleting') for item in my_ord_dict.items(): print(item) #re-inserting item my_ord_dict['BB'] = 22 print('After Re-inserting') for item in my_ord_dict.items(): print(item)
出力
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After Deleting ('AA', 11) ('CC', 33) ('DD', 44) After Re-inserting ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 22)
-
サイクルソート用のPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、サイクルソートの概念を使用して配列をソートする必要があります。 これはインプレースアルゴリズムであり、スワッピングはサイクルの形成によって行われます。 次に、以下の実装のソリューションを見てみましょう- 例 def cycleSort(array): writes = 0 # cycles to be rotated for cycleStart in range(0, len(array) - 1):
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',