back

リスト・タプル・レンジ・セット・辞書 (3/8)

■タプルは、書き換え不可なリスト?

このリストに似たものに「タプル」というものもPythonにはあります。これは、以下のように記述します。
変数 = ( 値1, 値2, …… )
値を取り出すときは、変数と同様に[]でインデックスを指定します。例えば、str[0]といった具合に書けばOKです。

では、一体リストタプルは何が違うのか? それは「タプルは値の変更ができない」という点です。つまり、「変数」ではなく「定数」なのです。

プログラミングの世界では、変数のように値が自由に変更できるものも重要ですが、逆に「値が変更できない」ということもまた大切です。どこかで勝手に値が書き換えられてしまうと困ったことになる……そういった重要な値を配列のように多数利用する場合、リストでは困ります。

タプルは、値が変わらないことが保証されたリストなのです。そう考えれば、このタプルを使うシーンもなんとなく想像できることでしょう。

こうした「書き換え不可なコンテナ」というのは、タプルの他にもあります。前章でちらっと出てきたレンジ(range)などがそうです。こうした書き換え不可なものを「イミュータブル」といいます。
  
これに対し、書き換えのできるものは「ミュータブル」といいます。リストはミュータブルなコンテナの代表格といえます。

では、「タプルとして用意した値を、あとでリストとして使いたい」というような場合はどうすればいいか。こうした場合には、変換用の関数を使うことができます。

・タプルをリストに変換する
変数 = list( タプル )

・リストをタプルに変換する
変数 = tuple( リスト )

では、下にタプルリストの利用例をあげておきましょう。タプルtpを用意し、そこからリストlsを作って、リストの値を変更しています。出力結果を見ながら、lsの値とtpの値がどのように使われているのか考えてみましょう。



(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。

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])




   

記事のリストに戻る



PC Site G+ mail