リスト
Pythonでは、変数にリストを指定して、数をいくつかまとめて取り扱うことができます。
リストを使う時は[](かどかっこ)を使って、数字をまとめます。
たとえば、こんな感じです。
リストを指定すると、リストに入っている数字を全部printできます。
また、リストに入っている数字を「何番目の数字を取り出す」ということもできます。
下記の例だと、リストの2番目の数字を取り出しています。
リストの数字は1番目から、0,1,2…と指定するので、下記の例だと3がprintされます。
リストに数字を追加することもできます。
.append()とすることで、リストに数字を追加できます。
リストの中に、リストを入れることもできます。
上記の例だと、
a = [1,2,3]というリストとb = [4,5,6]というリストを、cという変数に格納しています。
なので、print(c) としてやると、
[[1,2,3], [4,5,6]]
と、リストが2つ出てきます。
さらに、そのつながったリストの中から、指定の数字を取り出す場合は、
d = c[1][2]
のように書きます。
上記の場合は、cという、[[1,2,3], [4,5,6]]と、2つのリストがつながったリストのうち、最初の[1]で何番目のリストかを指定、その次の[2]で、リストの何番目の数字かを指定します。
なので、d = c[1][2]は、
[[1,2,3], [4,5,6]]←[1]番目のリスト(0番目、1番目、というようにカウント)のうち、
[2]番目の数字[4,5,6]←[2]番目の数字 (0番目、1番目、2番目、というようにカウント)を指定しているので、
6
になります。
リストのコピー
リストは複数の変数から参照することもできます。
上記の場合、aとbは同じリスト[1,2,3]を参照していて、b[1]=10と、[1]番目の数字を10にすると、aもbも、printした結果は同じように[1,10,3]になります。
同じリストをa,bと、別の変数から参照していると、一方の変数の方でリストをいじると、もう片方が変数で参照しているリストも当然変わってしまいます。
それを避けるためには、リストをコピーして変数に代入します。
b = a.copy()
と入力すると、aのリスト[1,2,3]をコピーしてbに代入するので、その後、b[1]=10として、リストの数字を更新しても、aに代入されているリストには影響ないようにできます。
タプル
タプルは、()(かっこ)でリストをくくっているだけで、[](かどかっこ)でくくっているリストとぱっと見ほぼ同じような感じに見えますが、
・要素の変更ができない
・要素の追加ができない
という点で、リストとは異なります。
こんな感じで、タプル内の要素を変更しようとしても、エラーが出ます。
リストではなくて、タプルを使うことで、意図しない変更で不具合が起きる、ということを防げます。
ちなみに、タプルの要素を変更したり追加したりはできませんが、タプル同士を結合することはできます。
こんな感じです↓
辞書
リストやタプルと同じように、複数のデータを扱うもので「辞書」があります。
辞書は、キーと値がセットになっている形のリストのようなものになります。
{}(なみかっこ)で、キーと値をセットにして格納します。
で、b=a[“key2”]
として、bをprintすると、key2に対応する20がprintされます。
また、辞書はキーを指定して、辞書の内容を更新することができます。
下記は、kei2:20を、120に更新しています。
辞書に要素を追加するには、辞書に存在しないキーを指定してあげると、辞書に要素を追加することができます。
下記の例は、key4を新しく辞書の要素として追加しているイメージになります。
セット
セットはリストに似ていて、複数の値を格納できます。
リストとの違いは、以下のような点で異なります。
・セットは値が重複しない(重複した値を入れることができない)
・セットは順番は関係なく格納している(順番は保持しない)
セットは、{}(なみかっこ)の中に複数の値を 「,(カンマ)」 区切りで格納する形になります。
こんな感じです↓
セットへの値の追加は、add( )を使って追加することができます。
ちなみに、リストと違って、既にリストにあるものと同じ値、下記図だと「悟空」を追加しようとしても、追加されずに、セットの中身は変わりません。
なお、リストから、新しくセットを作ることができます。
この場合、重複している値は1つにされて、リストに入ります。
リストとかセットとかタプルとか辞書とか、複数の値を格納する概念がたくさんあってややこしいですが、それぞれの特長を覚えて、適切な場所で適切なものを使えるようになるまで勉強あるのみ、ですね。。。