前回の記事でタプルの作り方と使い方を取り上げました。今回は要素の変更、追加と削除について取り上げます。 タプルは一度作成してしまうと要素の変更ができないです。このように変更不可能な事をイミュータブル(immutable、日本語訳:変更不可能な)といい、「タプルはイミュータブルだ」などといいます。ここがリストと大きく異なるところです。(リストはミュータブル(変更可能)で要素の変更、追加などが可能)

タプルの要素の変更
冒頭で述べた通り、タプルはイミュータブルなので変更はできません。リストと同じようにタプルの要素の変更を行おうとすると…
animals = ("monkey","crab","crocodile")
animals[1] = "shrimp"
print(animals)
【エラーメッセージ】
'tuple' object does not support item assignment 「タプルオブジェクトはアイテムの割り当てをサポートしていません」と怒られてしまいました。出来ない事をしようとしているのですから、当然ですね。
で、「じゃあ出来ませんね。」で終わってしまうと、この記事の存在意義がなくなってしまい、筆を置かなくてはいけませんので、「出来るようにしましょう。」という事で進めたいと思います。
リストを経由してみる
変数のデータ型がタプルのままだと「サポートしてません。」と怒られてしまうので、①タプルの作成⇒②リストに変換⇒③リスト内の要素を変更⇒④変更したリストをタプルに変換という手順でタプルの要素を変更してみたいと思います。
変数animalsにタプルを代入します。
animals = ("monkey","crab","crocodile")STEP1で作成したタプルをリスト関数を用いてリストに変換します。ここでは、リストになっているか、出力して確認もします。
animals = ("monkey","crab","crocodile")
animals = list(("moneky","crab","crocodile"))
print(animals)
【実行結果】
['moneky', 'crab', 'crocodile']※2行目のanimals = list((“moneky”,”crab”,”crocodile”))はanimals = list(animals)と書いても大丈夫です。
要素crabをshrimpに変更します。
animals = ("monkey","crab","crocodile")
animals = list(("moneky","crab","crocodile"))
animals[1] = "shrimp"
print(animals)
【実行結果】
['moneky', 'shrimp', 'crocodile']要素crabが要素shrimpに変更されました。
STEP3で出来たリストをタプル関数を用いてタプルへ変換します。
animals = ("monkey","crab","crocodile")
animals = list(("moneky","crab","crocodile"))
animals[1] = "shrimp"
animals = tuple(animals)
print(animals)
【実行結果】
('moneky', 'shrimp', 'crocodile')リストを経由することにより、タプルの要素を変更することができました。同様にして、タプルに要素を追加したり、削除したりする事ができます。

コメント