【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([])
スポンサーリンク