PythonでのDeque
Dequeは基本的にスタックとキューの構造を一般化したもので、左から右に初期化されます。リストオブジェクトを使用して両端キューを作成します。ポップと追加にO(1)時間計算量を提供します。
Dequeisは、コレクションにある標準ライブラリクラスです。 モジュール。
最初に使用するには、コレクションの標準ライブラリモジュールをインポートする必要があります。
import collections
このセクションでは、Dequeクラスのいくつかの関数を確認します
Dequeの追加機能
追加には2つの異なるタイプがあります。 append()メソッドは、キューの右端に要素を追加するために使用され、appendleft()メソッドは、キューの左側に要素を追加するために使用されます。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('124dfre') print('Dequeue: ' + str(my_deque)) #insert x at right and B at left my_deque.append('x') my_deque.appendleft('B') print('Dequeue after appending: ' + str(my_deque))
出力
Dequeue: deque(['1', '2', '4', 'd', 'f', 'r', 'e']) Dequeue after appending: deque(['B', '1', '2', '4', 'd', 'f', 'r', 'e', 'x'])
DequeのPopping関数
追加と同様に、ポップ関数には2つの異なるタイプがあります。 pop()メソッドは、キューから右端の要素を削除して返すために使用され、popleft()メソッドは、キューから左端の要素を削除して返すために使用されます。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('124dfre') print('Dequeue: ' + str(my_deque)) #delete item from right and left item = my_deque.pop() print('Popped Item: ' + str(item)) item = my_deque.popleft() print('Popped Item: ' + str(item)) print('Dequeue after pop operations: ' + str(my_deque))
出力
Dequeue: deque(['1', '2', '4', 'd', 'f', 'r', 'e']) Popped Item: e Popped Item: 1 Dequeue after pop operations: deque(['2', '4', 'd', 'f', 'r'])
Dequeのアイテム関連機能
Dequeの一部の関数は、アイテムに関連する情報を取得するために使用されます。 index()、count()などの関数がいくつかあります。indexメソッドは、要素の最初の出現のインデックスを取得するために使用されます。要素で引数が渡されない場合は、リスト全体が選択され、特定の制限が指定されている場合は、その制限内のインデックスがチェックされます。一方、count()メソッドは、Deque内のアイテムの頻度をカウントします。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('AABCDDEFD') print('Dequeue: ' + str(my_deque)) #find the index of D print('Index of D:' + str(my_deque.index('D'))) print('Index of D in range 5 to 8 is: ' + str(my_deque.index('D', 5, 8))) #Count the number of occurrences print('Occurrences of A: ' + str(my_deque.count('A'))) print('Occurrences of D: ' + str(my_deque.count('D')))
出力
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Index of D:4 Index of D in range 5 to 8 is: 5 Occurrences of A: 2 Occurrences of D: 3
Dequeのinsert()およびremove()関数
要素をそれぞれ挿入および削除するためのDequeのappend関数とpop関数についてはすでに説明しました。挿入と削除に関連する別の2つの方法があります。 insert()メソッドは、数値を挿入するために使用されます。この場合、挿入するためのインデックスを提供できます。そのため、指定した場所にアイテムを挿入できます。そして、remove()メソッドは、要素の最初の出現を削除するために使用されます。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('AABCDDEFD') print('Dequeue: ' + str(my_deque)) #Insert letter G and H into the position 5, 7 respectively my_deque.insert(5, 'G') my_deque.insert(7, 'H') print('Dequeue after inserting: ' + str(my_deque)) #Delete first occurrence of letter D my_deque.remove('D') print('Dequeue after removing: ' + str(my_deque))
出力
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Dequeue after inserting: deque(['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D']) Dequeue after removing: deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])
Dequeの関数の拡張
拡張関数は、Dequeに複数の要素を追加するために使用されます。リストやタプルなどのコレクションを使用して、複数の値を提供できます。拡張機能には2つのタイプがあります。 extend()メソッドは、右側に要素を追加するために使用されます。これは、反復的なappend()関数に似ています。また、extendleft()メソッドを使用して要素を左側に追加します。これは、反復的なappendleft()関数に似ています。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('AABCDDEFD') print('Dequeue: ' + str(my_deque)) #Extend by adding 1, 3, 5, 7 to the right and x, y, z to the left my_deque.extend([1, 3, 5, 7]) my_deque.extendleft(['x', 'y', 'z']) print('Dequeue after Extending: ' + str(my_deque))
出力
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Dequeue after Extending: deque(['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D', 1, 3, 5, 7])
Dequeの反転および回転機能
reverse()メソッドを使用して、デキューアの順序を逆にすることができます。 rotate()と呼ばれる別のメソッドがあります。回転メソッドを使用すると、引数として指定された数で両端キューを回転できます。引数が正の場合は右に回転し、負の数の場合は左に回転します。
サンプルコード
import collections as col #Insert some elements into the queue at first my_deque = col.deque('AABCDDEFD') print('Dequeue: ' + str(my_deque)) my_deque.reverse() print('Deque after Reversing:' + str(my_deque)) #rotate to the right, 3 elements my_deque.rotate(3) print('Deque after rotating:' + str(my_deque))
出力
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Deque after Reversing:deque(['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A']) Deque after rotating:deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',
-
Pythonコンテナのデータ型
コレクションには、いくつかのコンテナデータ型があります。これは、dict、list、setなどのPythonの汎用組み込みコンテナの代替です。 一部のコンテナは- Sr.No。 コンテナと説明 1 namedtuple() 名前フィールドを持つタプルサブクラスを作成するために使用されます 2 deque リストタイプのデータを使用したキュー 3 カウンター ハッシュテーブルオブジェクトをカウントするdictのサブクラス 4 ChainMap 複数のマッピングの単一ビューを作成するために使用されます 5