Python Deque Peek

Salman Mehmood 2023年6月21日
  1. Python Deque Peek の概要
  2. 解決策: インデックスを使用して、deque クラスを介してフロント要素をピークする
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] を使用して最後の要素をピークできます。 要素が左右から飛び出すことなく機能し、効率的にも見えます。

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

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