以前の記事でタプルの作り方と使い方を取り上げました。今回は要素の削除について取り上げます。
タプルは一度作成してしまうと要素の変更ができません。このように変更不可能な事をイミュータブル(immutable、日本語訳:変更不可能な)といい、「タプルはイミュータブルだ」などといいます。ここがリストと大きく異なるところです。(リストはミュータブル(変更可能)で要素の変更、追加などが可能)
タプルの要素の削除
冒頭で述べた通り、タプルはイミュータブルなので作成した後に変更はできません。その為、そのままではタプルの要素の削除できません。では、どうするかというと
タプルの要素を変更する方法での記事と同様に、
①タプルの作成
⇒②リストに変換
⇒③リストの要素の削除
⇒④要素を削除したリストをタプルに変換
という手順でタプルに要素を追加します。以下の例で実際に行ってみます。
タプルを作成します。
animals = ("monkey","crab","crocodile")STEP1で作成したタプルをリスト関数を用いてリストに変換します。ここでは、リストになっているか、print()関数で出力してみます。
animals = ("monkey","crab","crocodile")
animals = list(("monkey","crab","crocodile"))
print(animals)
【実行結果】
['monkey', 'crab', 'crocodile']※2行目のlist()関数の引数はタプルを書かなくても、変数animalsでも問題ありません。
animals = ("monkey","crab","crocodile")
animals = list(animals)
print(animals)
【実行結果】
['monkey', 'crab', 'crocodile']STEP2で変換したリストの要素を削除します。ここでは、pop()メソッドを使って削除したいと思います。
animals = ("monkey","crab","crocodile")
animals = list(animals)
animals.pop(1)
print(animals)
【実行結果】
['monkey', 'crocodile']pop()メソッドについては下記、記事をご参照ください。

STEP3で出来たリストをタプル関数を用いてタプルへ変換します。
animals = ("monkey","crab","crocodile")
animals = list(animals)
animals.pop(1)
animals = tuple(animals)
print(animals)
【実行結果】
('monkey', 'crocodile')リストを経由することにより、最初のタプルの要素からcrabを削除する事ができました。
補足(remove()メソッド、del文を用いた要素の削除の場合)
上記ではpop()メソッドで要素を削除しましたが、remove()メソッドやdel文で要素を削除することも可能です。
remove()メソッドを用いた削除
remove()メソッドを使う場合も基本的な考え方は一緒です。上記でpop()メソッドを使っていた部分でremove()メソッドに置き換えればOKです。
remove()メソッドはpop()メソッドと異なり、要素の値そのものを指定します。その為、リスト内の何番目に位置しているかという事を気にしなくても削除できるメソッドになっています。
オブジェクト名.remove(x)とすることでxと同じ要素のうち、最初のものを削除します。では、remove()メソッドを使った際の例です。先ほどと同じ変数animalsのうちmonkeyを削除したいと思います。
animals = ("monkey","crab","crocodile")
animals = list(animals)
animals.remove("monkey")
animals = tuple(animals)
print(animals)
【実行結果】
('crab', 'crocodile')del文を用いた削除
del文を使う場合もremove()メソッドを使った時と同様の考え方で、pop()メソッド(remove()メソッド)を使っていた部分をdel文に置き換えればOKです。
要素を複数消す場合はdel オブジェクト名[i:j]とします。ここでi,jはそれぞれインデックス値になります。また、削除される要素はiからj-1である事に注意です。del オブジェクト名[i]とした場合は、インデックス値iのものが削除されます。
では、del文を使った際の例です。先ほどと同じ変数animalsのうちmonkeyを削除します。
animals = ("monkey","crab","crocodile")
animals = list(animals)
del animals[1]
animals = tuple(animals)
print(animals)
【実行結果】
('monkey', 'crocodile')リストを経由することにより、タプルの要素を削除することができました。同様にして、タプルに要素を変更したり、追加したりする事ができます。



コメント