Python 入門 | リスト、タプル、range、set、辞書 | タプルは変更できないリストか
Python には、リストに似たタプルもある。次のように記述する。
変数 = (値1, 値2, ...)
値を取り出すときは、リストと同じように角かっこ内にインデックスを指定する。たとえば str[0] と書く。
リストとタプルの違いは何だろうか。タプルの値は変更できない。変数ではなく定数のように扱われる。
プログラミングでは、値を自由に変更できることが重要である。一方で、値が変更されないことを保証することも重要である。予期しない更新が問題になる値には、リストは適していない。
タプルは値が変化しないことを保証する。最初は不要に見えるかもしれないが、値を安定させたい場合に役立つ。
変更できないコンテナーには、ほかにも range などがある。変更できないオブジェクトをイミュータブルなオブジェクトと呼ぶ。変更できるオブジェクトをミュータブルなオブジェクトと呼ぶ。リストは代表的なミュータブルコンテナーである。
タプルの値を後でリストとして使う場合は、関数で変換する。
タプルをリストへ変換
変数 = list(タプル)
リストをタプルへ変換
変数 = tuple(リスト)
次の例では、タプルとリストを利用する。
tp = (0,1,2,3,4)
ls = list(tp)
for n in range(0,5):
ls[n] = ls[n] * 2
for n in tp:
print(ls[n])
タプル tp を作成し、そこからリスト ls を作って値を変更する。ls と tp がどのように使われるか確認しよう。