Python Deque Peek
この記事では、Python で両端キュー (両端キュー) の先頭にある要素を、両端キューから削除せずに表示/検査する方法を示します。
Python Deque Peek の概要
プログラムで両端キューを使用しているときに、両端キューの先頭にあるものを確認したい場合があります。 両端キューの先頭にあるものに基づいて、別のアクションを実行したい場合があります。
要素をポップして必要な条件をチェックすることは最も明白に思えるかもしれませんが、それが常に最良の選択であるとは限りません。 典型的なシナリオは、両端キューの変更を許可しない制約です。 それ以外は不要な操作でもあります。
次のコードを検討してください。
from collections import deque
data = deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
このコード スニペットでは、最初に、Python のインストールに付属する collections
モジュールから deque
データ構造をインポートしています。 その後、1
から 10
までの範囲の要素で deque
が初期化されます。
ここで、両端キューの要素をどの方向からもポップすることなく、両端キュー
のフロントにアクセスする必要があります。 どうすればそれができますか? 以下でそれを学びましょう。
解決策: インデックスを使用して、deque
クラスを介してフロント要素をピークする
ソリューションについて説明する前に、Python でのインデックス作成のしくみと、要素をポップせずに deque
のフロント メンバーにアクセスするためにインデックスを使用する方法を学ぶ必要があります。
Python のインデックス
Python の index()
メソッドは、イテラブル内の特定の要素をその位置に応じて参照します。 したがって、イテラブル内の目的の要素に直接アクセスし、要件に基づいてさまざまなアクションを実行できるとも言えます。
他のほとんどすべてのプログラミング言語と同様に、Python のオブジェクトは zero-indexed
です。つまり、位置カウントはゼロから始まります。 多数の追加のプログラミング言語が同じ構造に従います。
したがって、リストに 5つの項目がある場合、最初の要素 (一番左の要素) が zero
の位置を占め、その後に 1 番目、2 番目、3 番目、4 番目の位置の要素が続きます。
index()
メソッドは、アイテムの名前を引数としてリストで呼び出すと、リスト内の特定のアイテムのインデックスを明らかにします。
次のコードを検討してください。
cars = ["Suzuki", "Honda", "Chevrolet", "Ford", "Tesla"]
# Printing out the indexes of Suzuki and Tesla
print("Index of Suzuki: ", cars.index("Suzuki"))
print("Index of Tesla: ", cars.index("Tesla"))
出力:
Index of Suzuki: 0
Index of Tesla: 4
Python インデックス演算子
角括弧 []
は、Python のインデックス演算子を表します。 ただし、構文では、括弧内に数値を配置する必要があります。
構文:
IterableObject[index]
Python の負のインデックス
ここまでは、前の例のインデックス演算子 (角括弧 []
) 内で常に正の整数を使用してきました。 負の指数も存在します。
リストの最後のいくつかのメンバーに関心がある場合、またはリストの反対側からインデックスを付けたい場合は、負の整数を頻繁に使用できます。
負のインデックスは、反対側からインデックスを作成するこの方法を表しています。 次のコードを検討してください。
cars = ["Suzuki", "Honda", "Chevrolet", "Ford", "Tesla"]
# Printing out the indexes of Suzuki and Tesla
print(cars[-1])
print(cars[-2])
次の出力が得られます。
Tesla
Ford
負のインデックスがどのように機能するかがわかったので、問題の解決策は非常に明確になります。 次のコードを検討してください。
from collections import deque
data = deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print("First Element: " + str(data[0]))
print("Second Element: " + str(data[-1]))
出力:
First Element: 1
Second Element: 10
その deque
は、インデックスベースのアクセスの観点からリストとしても理解できるため、機能します。
deque[0]
を使用して先頭の要素をピークし、deque[-1]
を使用して最後の要素をピークできます。 要素が左右から飛び出すことなく機能し、効率的にも見えます。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn