libro
www.tuyano.com
初心者のためのPython入門

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

作成:2011-01-18 09:27
更新:2017-06-03 12:16

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

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

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

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

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

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

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

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

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

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

※プログラムリストが表示されない場合

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

※関連コンテンツ

「初心者のためのPython入門」に戻る