リスト・タプル・レンジ・セット・辞書 (3/8)
作成:2011-01-18 09:27
更新:2017-06-03 12:16
更新:2017-06-03 12:16
■タプルは、書き換え不可なリスト?
このリストに似たものに「タプル」というものもPythonにはあります。これは、以下のように記述します。
では、一体リストとタプルは何が違うのか? それは「タプルは値の変更ができない」という点です。つまり、「変数」ではなく「定数」なのです。
プログラミングの世界では、変数のように値が自由に変更できるものも重要ですが、逆に「値が変更できない」ということもまた大切です。どこかで勝手に値が書き換えられてしまうと困ったことになる……そういった重要な値を配列のように多数利用する場合、リストでは困ります。
タプルは、値が変わらないことが保証されたリストなのです。そう考えれば、このタプルを使うシーンもなんとなく想像できることでしょう。
こうした「書き換え不可なコンテナ」というのは、タプルの他にもあります。前章でちらっと出てきたレンジ(range)などがそうです。こうした書き換え不可なものを「イミュータブル」といいます。
これに対し、書き換えのできるものは「ミュータブル」といいます。リストはミュータブルなコンテナの代表格といえます。
では、「タプルとして用意した値を、あとでリストとして使いたい」というような場合はどうすればいいか。こうした場合には、変換用の関数を使うことができます。
・タプルをリストに変換する
・リストをタプルに変換する
では、下にタプルとリストの利用例をあげておきましょう。タプルtpを用意し、そこからリストlsを作って、リストの値を変更しています。出力結果を見ながら、lsの値とtpの値がどのように使われているのか考えてみましょう。
変数 = ( 値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])
※関連コンテンツ