このリストに似たものに「
タプル」というものも
Pythonにはあります。これは、以下のように記述します。
変数 = ( 値1, 値2, …… )
値を取り出すときは、変数と同様に
[]でインデックスを指定します。例えば、
str[0]といった具合に書けばOKです。
では、一体
リストと
タプルは何が違うのか? それは「
タプルは値の変更ができない」という点です。つまり、「
変数」ではなく「
定数」なのです。
プログラミングの世界では、変数のように値が自由に変更できるものも重要ですが、逆に「値が変更できない」ということもまた大切です。どこかで勝手に値が書き換えられてしまうと困ったことになる……そういった重要な値を配列のように多数利用する場合、リストでは困ります。
タプルは、値が変わらないことが保証されたリストなのです。そう考えれば、この
タプルを使うシーンもなんとなく想像できることでしょう。
こうした「書き換え不可なコンテナ」というのは、タプルの他にもあります。前章でちらっと出てきたレンジ(range)などがそうです。こうした書き換え不可なものを「
イミュータブル」といいます。
これに対し、書き換えのできるものは「
ミュータブル」といいます。リストはミュータブルなコンテナの代表格といえます。
では、「
タプルとして用意した値を、あとで
リストとして使いたい」というような場合はどうすればいいか。こうした場合には、変換用の関数を使うことができます。
・タプルをリストに変換する
変数 = list( タプル )
・リストをタプルに変換する
変数 = tuple( リスト )
では、下に
タプルと
リストの利用例をあげておきましょう。
タプルtpを用意し、そこから
リストlsを作って、リストの値を変更しています。出力結果を見ながら、
lsの値と
tpの値がどのように使われているのか考えてみましょう。