タプルにappendしようとして「AttributeError: ‘tuple’ object has no attribute ‘append’」

雑記

リストのような感覚で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 を作成できる。

タイトルとURLをコピーしました