Pythonでlistから要素を削除する

この記事では、listから要素を削除するサンプルコードを紹介します。

目次

remove

remove(x)で、リスト中でxと等しい値を持つ最初の要素を削除します。
xはリスト内の位置ではなく、値そのものを指します。

該当する要素が無い場合はValueErrorになります。

l = [1, 2, 3, 4, 5]
rt = l.remove(2)

print(l)
print(rt)

# [1, 3, 4, 5]
# None
# 戻り値は無い。

l = [1, 2, 3, 4, 5]
l.remove(0)

# ValueError: list.remove(x): x not in list
# 該当する要素が無いときはValueErrorになる。

l = ['a', 'b', 'c']
l.remove('b')

print(l)

# ['a', 'c']
# 削除に使う値はIndexではなく、要素そのものを指定する。

pop

pop(i)で、指定された位置の要素をリストから取り除きます。
そして、取り除いた値を返します。

l = [1, 2, 3, 4, 5]
rt = l.pop(0)

print(l)
print(rt)

# [2, 3, 4, 5]
# 1
# 削除する要素の指定は位置(インデックス)となる。戻り値は削除する要素となる。

l = [1, 2, 3, 4, 5]
rt = l.pop(1)

print(l)
print(rt)

# [1, 3, 4, 5]
# 2

末尾を削除する場合は、位置指定でもいいが、インデックスを-1に指定することでも削除できる。
また、後ろからの位置(マイナス指定)で削除する要素を削除できる。

l = [1, 2, 3, 4, 5]
rt = l.pop(len(l) - 1)

print(l)
print(rt)

# [1, 2, 3, 4]
# 5
# 末尾の削除。

l = [1, 2, 3, 4, 5]
rt = l.pop(-1)

print(l)
print(rt)

# [1, 2, 3, 4]
# 5
# 末尾を削除するときは、-1で指定できる。

l = [1, 2, 3, 4, 5]
rt = l.pop(-2)

print(l)
print(rt)

# [1, 2, 3, 5]
# 4
# 位置指定は、後ろからのマイナス位置でも指定できる。

インデックスが指定されていない場合、リスト末尾の要素を取り除いて返します。

l = [1, 2, 3, 4, 5]
rt = l.pop()

print(l)
print(rt)

# [1, 2, 3, 4]
# 5
# 位置指定されない場合は、末尾が削除される。


リストが空であるか、インデックスがリストの範囲外の場合はIndexErrorになります。

l = [1, 2, 3, 4, 5]
rt = l.pop(5)
# IndexError: pop index out of range

l = []
rt = l.pop()
# IndexError: pop from empty list

clear

clearはリスト中の全ての要素を削除します。

l = [1, 2, 3, 4, 5]
rt = l.clear()

print(l)
print(rt)

# []
# None
# 戻り値は無い。

この記事の補足として、listオブジェクトの関数のサイトを載せておきます。