今回はリストの要素の削除について取り上げます。リストはリスト内の要素を変更可能です。このように変更可能な事をミュータブル(mutable、日本語訳:変更可能な)といい、「リストはミュータブルだ」などといいます。では実際に要素を削除してみましょう。
要素の変更と追加については、下記記事にて取り上げています。

リストの要素を削除する方法
リストの要素を削除する方法は
①pop()メソッド
②remove()メソッド
③clear()メソッド
④del文
などがあります。ひとつずつ見ていきます。
pop()メソッド
pop()メソッドはオブジェクト名.pop(i)とすることで、インデックス値がiの要素を削除することができます。
animals = ["monkey","crab","crocodile"]
animals.pop(1)
print(animals)
【実行結果】
['monkey', 'crocodile']インデックス値1のcrabが削除されました。
pop(i)のiにマイナスの値を使うこともできます。マイナスを使った場合、-1が末尾、-2が末尾よりひとつ手前、-3が…となります。
animals = ["monkey","crab","crocodile"]
animals.pop(-1)
print(animals)
【実行結果】
['monkey', 'crab']-1で削除を指定したので、末尾のcrocodileが削除されました。
remove()メソッド
remove()メソッドはpop()メソッドと異なり、要素の値そのものを指定します。その為、リスト内の何番目に位置しているか?という事を気にしなくても削除できるメソッドになっています。
オブジェクト名.remove(x)とすることでxと同じ要素のうち、最初のものを削除します。
animals = ["monkey","crab","crocodile"]
animals.remove("crab")
print(animals)
【実行結果】
['monkey', 'crocodile']つづいて、リストの要素に同じ値が2つある場合をみてみましょう。同じ値が2つある場合は、最初のものが削除されます。
animals = ["monkey","crab","crocodile","crab"]
animals.remove("crab")
print(animals)
【実行結果】
['monkey', 'crocodile', 'crab']clear()メソッド
clear()メソッドはリスト内の全ての要素を削除します。オブジェクト名.clear()で削除できます。
animals = ["monkey","crab","crocodile"]
animals.clear()
print(animals)
【実行結果】
[]リスト内の全ての要素が削除され、空のリストが出力されました。
del文
del文を用いた要素の削除では、削除する要素を1つだけ指定する事もできますし、リスト内のある範囲の要素を一挙に削除する事もできます。
要素を1つ消す場合(del文)
要素を1つ消す場合はdel オブジェクト名[i] とします。ここで、iはインデックス値になります。
animals = ["monkey","crab","crocodile"]
del animals[1]
print(animals)
【実行結果】
['monkey', 'crocodile']animals = ["monkey","crab","crocodile"]
del animals[1]
print(animals)
【実行結果】
['monkey', 'crocodile']インデックス値1のcrabが削除されました。(※インデックスは0から始まる事に注意)
要素を複数消す場合(del文)
要素を複数消す場合はdel オブジェクト名[i:j]とします。ここでi,jはそれぞれインデックス値になります。また、削除される要素はiからj-1である事に注意です。del オブジェクト名[i]とした場合は、インデックス値iのものが削除されます。
animals = ["monkey","crab","crocodile","shrimp"]
del animals[1:3]
print(animals)
【実行結果】
['monkey', 'shrimp']インデックス値1crabからインデックス値2(3-1 = 2)crocodileまで削除されました。
このdel文でのインデックス値の示し方ですが、[:3]や[1:]、[:]といった数字を省略した表し方ができます。
それぞれみていきましょう。
開始番号を省略(del文)
開始暗号を省略すると一番初めの数字0が入力されたものとみなされます。
animals = ["monkey","crab","crocodile","shrimp"]
del animals[:3]
print(animals)
【実行結果】
['shrimp']上記の場合、インデックス値が0~2までの要素が削除されました。monkeyがインデックス値0、crabがインデックス値1、crocodileがインデックス値2なので、インデックス値3のshrimpだけがリストに残りました。
終了番号を省略(del文)
終了番号を省略すると末尾の要素まで削除されます。
animals = ["monkey","crab","crocodile","shrimp"]
del animals[1:]
print(animals)
【実行結果】
['monkey']インデックス値が0のmonkeyのみが残りました。

コメント