
Deque とは、スタックとキューを一般化したものです (この名前は「デック」と発音され、これは「double-ended queue」の省略形です)。Deque はどちらの側からも append と pop が可能で、スレッドセーフでメモリ効率がよく、どちらの方向からもおよそ 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([])