Python の pop メソッドでリスト(配列)の要素を削除する

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

以上です。

  • URLをコピーしました!
Contents