リストのような感覚でappendしようとしたらエラーが出たのでメモ。
エラーになるコード例
# 現在のタプル
my_tuple = (1, 2, 3)
# 新しい要素
new_element = 4
# 新しいタプルを作成して既存の要素と新しい要素を含める
my_tuple.append(new_element,)
# 新しいタプルを表示
print(my_tuple)
実行結果(エラー内容)
Exception has occurred: AttributeError
'tuple' object has no attribute 'append'
File "C:\Users\■■■■■\test.py", line 8, in <module>
my_tuple.append(new_element,)
^^^^^^^^^^^^^^^
AttributeError: 'tuple' object has no attribute 'append'
原因
エラー内容的には、appendなんて関数をtupleは持ってないよって感じである。調べてみたらtuple(タプル)は不変(immutable)なデータ構造であるため、そもそも一度作成されたタプルは変更できないらしい。
修正例
一度作成されたタプルは変更できなくても、新しいタプルを作成して元のタプルの内容を含めることはできて、+演算子でタプル同士を結合して新しいタプルが作れるらしいので、以下のようにすると良い。
# 現在のタプル
my_tuple = (1, 2, 3)
# 新しい要素
new_element = 4
# 新しいタプルを作成して既存の要素と新しい要素を含める
new_tuple = my_tuple + (new_element,)
# 新しいタプルを表示
print(new_tuple)
これで既存のタプル my_tuple に新しい要素 4 を追加して、新しいタプル new_tuple を作成できる。