この記事では、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オブジェクトの関数のサイトを載せておきます。