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 を作って値を変更する。lstp がどのように使われるか確認しよう。