Python の pop メソッドでリスト(配列)の要素を削除する
Pythonのpop
メソッドは、リスト(配列)の指定した位置の要素を削除し、その要素の値を取得することができます。
l = [0, 1, 2, 3]
popped_item = l.pop(0)
print(l)
# [1, 2, 3]
print(popped_item)
# 0
Python引数に負の値を持たせると末尾からの位置指定ができ、引数を省略すると末尾が指定される。
popped_item = l.pop(-1)
print(popped_item)
# 3
popped_item = l.pop()
print(popped_item)
# 3
Pythonなお、先頭の要素を削除するpop(0)
はO(n)
のコストを必要とするため非効率。O(n)
についての解説では、「【アルゴリズム】O記法ってなに?初心者必見、プログラムの計算時間を見積もる | note」がわかりやすい。
先頭の要素削除をO(1)
で行う型として、標準ライブラリcollectionsモジュールにdeque
型が用意されている。データをキュー(queue, FIFO)として扱いたい場合はこちらのほうが効率的。
リストの各種操作に対する計算量については、「TimeComplexity – Python Wiki」を参照。
また辞書型にも使用できる。この場合は、引数にキーを指定する。返却はバリュー。第二引数を指定するとキーが存在しない場合にその値が返る。
d = {"a": 0, "b": 1, "c": 2, "d": 3}
popped_item = d.pop("a")
print(popped_item)
# 0
popped_item = d.pop("e", None)
print(popped_item)
# None
Python以上です。