PSM

Pプログラミング S初心者の Mメモ書き

collections.dequeについて

「え〜まだlistしか使い方わかんないの〜?」
「dequeくらい使えて当たり前だよね〜〜」
という啓示を得たのでメモします

listと比べて良いところ

listは,最後尾の要素をいじるappendとかの操作は早いんですが,先頭要素を加えたり削除したりしようとすると途端に遅くなります.
この点,dequeは双方向連結リストなので,先頭要素を操作するのも高速で行うことができるようになっています.

準備

collectionsをimportし,aという名前で dequeを準備します

import collections.deque
a = deque([1,2,3,4,5])

最後尾に要素を加えたい/削除したい

listと同じで,append/popを使います

#最後尾に要素を加える
a.append(0) #要素を加える
print(a)

#最後尾から要素を取り除く
print(a.pop()) #要素そのものも取り出せる
print(a) 

先頭に要素を加えたい/削除したい

pythonは左から右に流れる言語なので(逆は存在するのだろうか?)
先頭ということは即ち最も左側であるということになります.
よってappend/popにleft(左)を付け加えたappendleft/popleftを使います.

a.appendleft(9)
print(a)

print(a.popleft())
print(a)

まとめ

dequeを使ってLet's高速化