Python タプルの更新
1. タプルは「変更不可能」 (Tuples are Unchangeable)
タプルはイミュータブル(Immutable)です。つまり、一度作成すると、その内容を変更、追加、または削除することはできません。
しかし、どうしても内容を更新しなければならない場合、Pythonには賢い「回避策(Workaround)」があります。
2. 値を変更する (Change Tuple Values)
タプルの値を書き換えるには、一度リスト(List)に変換し、値を変更した後に、再びタプルに戻すという手順を踏みます。
例:リスト変換を利用して値を更新する
x = ("apple", "banana", "cherry")
y = list(x) # リストに変換
y[1] = "kiwi" # リストの内容を書き換え
x = tuple(y) # タプルに再変換
print(x)3. 項目を追加する (Add Items)
タプルに新しい要素を追加する場合も、同様の考え方で行います。
3.1 リスト変換による追加
最も確実なのは、一度リストにしてから append() メソッドなどを使う方法です。
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.append("orange")
thistuple = tuple(y)3.2 タプル同士の結合
もう一つの方法は、新しい要素を含む新しいタプルを作成し、それを既存のタプルに加算することです。
例:タプルに別のタプルを結合する
thistuple = ("apple", "banana", "cherry")
y = ("orange",) # 1要素のタプル(カンマを忘れずに!)
thistuple += y
print(thistuple)注意: 1つの要素だけを持つタプルを作成する際は、必ず末尾にカンマ , を付けてください。そうしないと、ただの「文字列」として扱われ、結合時にエラーになります。
4. 項目を削除する (Remove Items)
タプルから特定の要素を削除したい場合も、リストへの変換が必要です。
例:リスト変換を利用して項目を削除する
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.remove("apple")
thistuple = tuple(y)4.1 del キーワード
タプル内の特定の要素を消すことはできませんが、del キーワードを使ってタプルオブジェクト自体を完全に削除することは可能です。
thistuple = ("apple", "banana", "cherry")
del thistuple
# これ以降に print(thistuple) を実行すると、
# 変数が存在しないためエラー(NameError)になりますタプルの不変性は、プログラムの意図しない書き換えを防ぐための重要な「ガードレール」です。今回紹介した変換テクニックは便利ですが、頻繁に値を更新する必要があるデータなら、最初からリストとして定義するのが正解かもしれませんね。
次は、タプルの中身を一気に変数へ展開する便利なテクニック「アンパッキング(Unpacking)」について学んでいきましょう。