deque

投稿者: | 9月 3, 2022

Deque とは、スタックとキューを一般化したものです (この名前は「デック」と発音され、これは「double-ended queue」の省略形です)。Deque はどちらの側からも appendpop が可能で、スレッドセーフでメモリ効率がよく、どちらの方向からもおよそ O(1) のパフォーマンスで実行できます。list オブジェクトでも同様の操作を実現できますが、これは高速な固定長の操作に特化されており、内部のデータ表現形式のサイズと位置を両方変えるような pop(0) や insert(0, v) などの操作ではメモリ移動のために O(n) のコストを必要とします。

Python Documentation » Python 標準ライブラリ » データ型 » collections — コンテナデータ型

#Exam No.20

from collections import deque          #標準ライブラリのcollectionsからdequeモジュールを呼び込む
queue = deque(['bear', 'cow', 'dog', 'elephant', 'fox'])
queue.append('goat')                   #func.append(X) : 一番最後にXを追加する
queue.appendleft('dog')                #func.appendleft(X) : 左頭にXを追加する
print(queue)
print(queue.count('dog'))              #func.count(X) : コンテナの中のXの数を返す

queue.popleft()                        #func.popleft() : 左頭の値を抜き出す
print(queue)

queue.pop()                          #func.pop() : 一番最後の値を抜き出す
print(queue)

queue.insert(2,'dog')                 #func.insert(i,X) : 左からi(indexは0から)番目にXを挿入する
print(queue)

queue.clear()
print(queue)
deque(['dog', 'bear', 'cow', 'dog', 'elephant', 'fox', 'goat'])
2
deque(['bear', 'cow', 'dog', 'elephant', 'fox', 'goat'])
deque(['bear', 'cow', 'dog', 'elephant', 'fox'])
deque(['bear', 'cow', 'dog', 'dog', 'elephant', 'fox'])
deque([])