データ構造・モジュール・標準ライブラリPartII・仮想環境(5,6,11,12章)
次のコードを実行した結果として正しいものはどれか。 t = (1, [2, 3], 4) t[1].append(5) print(t)
- ATypeErrorが発生し、プログラムが停止する
- ✓(1, [2, 3, 5], 4) が出力される
- C(1, [2, 3], 4, 5) が出力される
- Dtupleは変更できないため、appendメソッドの呼び出し自体が失敗する
解説
タプル自体は不変(要素の再代入はできない)だが、その要素がリストのような可変オブジェクトであれば、その要素の内部を変更する操作(append等)は可能である。t[1]はリストなのでappend(5)は正常に実行される。
根拠Pythonチュートリアル5章 データ構造 - タプルとシーケンス