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