非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】高速で便利な配列型「deque」の使い方

   

Pythonでは配列を扱うデータ型には、 dict, list, set, tupleと豊富に用意されていてそれぞれに特徴がありますが、それに加え「deque」という型があります。

deque は両端の要素の追加・取り出し・アクセスに適していて、高速に処理できます。

from collections import deque

d = deque(["Miyagi", "Tokyo", "Aichi"])

d.appendleft('Morioka')  #先頭に追加
print(d)
#deque(['Morioka', 'Miyagi', 'Tokyo', 'Aichi'])

d.append("Osaka") #末尾に追加
print(d) 
#deque(['Morioka', 'Miyagi', 'Tokyo', 'Aichi', 'Osaka'])

d.extendleft(['Hokaido', 'Aomori'])  #先頭に追加
print(d) 
#deque(['Aomori', 'Hokaido', 'Morioka', 'Miyagi', 'Tokyo', 'Aichi', 'Osaka'])

d.extend(['Fukuoka', 'Okinawa'])  #先頭に追加
print(d) 
#deque(['Aomori', 'Hokaido', 'Morioka', 'Miyagi', 'Tokyo', 'Aichi', 'Osaka', 'Fukuoka', 'Okinawa'])

d.insert(4, 'Omiya')  #特定の箇所に追加
print(d)
#deque(['Aomori', 'Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Tokyo', 'Aichi', 'Osaka', 'Fukuoka', 'Okinawa'])

d.popleft() #先頭を削除
print(d)
#deque(['Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Tokyo', 'Aichi', 'Osaka', 'Fukuoka', 'Okinawa'])

d.pop() #末尾を削除
print(d)
#deque(['Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Tokyo', 'Aichi', 'Osaka', 'Fukuoka'])

d.remove('Tokyo') #特定データを削除
print(d)
#deque(['Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Aichi', 'Osaka', 'Fukuoka'])

d.rotate() #1要素分ローテーション
print(d)
#deque(['Fukuoka', 'Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Aichi', 'Osaka'])

d.rotate(-1) #逆方向にローテーション
print(d)
#deque(['Hokaido', 'Morioka', 'Miyagi', 'Omiya', 'Aichi', 'Osaka', 'Fukuoka'])

d.rotate(3) #3要素分ローテーション
print(d)
#deque(['Aichi', 'Osaka', 'Fukuoka', 'Hokaido', 'Morioka', 'Miyagi', 'Omiya'])

print(len(d)) #要素数
#7

d.clear() #オールクリア
print(d)
#deque([])

 

スポンサーリンク

 - Python