データ構造
pythonでは数値や文字列などの1つ1つのデータを、1つの集まったデータとして扱うことができる仕組みがあります。
例えば、1時間おきに何らかのデータを変数に格納する作業があるとすると、それを毎回違う名前の変数を指定するのは大変なことでプログラムの可読性も落ちるでしょう。
pythonでは、配列のことをリストと表現します。
データ構造のリストを使うことでプログラムは簡単に複雑なデータ構造をつくることが可能なので、pythonでできることの幅が広がるはずです。
ここではデータ構造であるリストやタプルについてメモを残していきます。
リストとタプル
文字列や数値などのデータを1つの集まりに格納して、そのデータと紐づけられた整数のインデックスで各データを取り出すことができる仕組みとしてリストとタプルの2種類があります。
格納する要素としては1つの集まりの中に文字列や数値などを一緒にできます。
pythonにリストとタプルの2種類がある理由としては、それぞれに特徴があるからです。
リストは要素の挿入と削除を行うことができますが、タプルは要素を代入すると書き換えができなくなるので、それぞれの特徴を生かした使い方をする必要があります。
リスト
リストは
- 要素を順番に管理したい
- その中でも特に順序と内容が変わる
ときに使用することが多いです。
リストに格納された要素は挿入や削除で書き換えが可能です。
リストの作成
リストは0個以上の要素で作ります。
0個のリストは何も要素が入っていないからのリストのことです。
リストに入れる要素をそれぞれ,(カンマ)で区切って作成します。
list1 = []
color = ["blue","red","yellow"]
month_list = ["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]
info = ["taro","male",20,"Japan"]
month_listは月の要素を1月から12月まで順番に格納していますが、これは順序があるので整数インデックスと対応して任意の要素を簡単に取り出すことが可能になります。
最後のinfoリストには個人の名前や年齢を格納したリストを作成しましたが、文字列と数値を同じリストに格納することが可能です。
list()関数でも空リストを作成できます。
list2 = list()
print list2
>>>[]
リストへの変換
list()関数の引数に文字列を指定して、1文字ずつリストに変換できます。
list("abc")
>>>["a","b","c"]
list()関数の引数にタプルを指定してリストに変換できます。
tuple1 = ("apple","book","cup")
list(tuple1)
>>>["apple","book","cup"]
リストから要素の取り出し
リストにオフセットを指定することで要素の取り出しが可能です。
ここでの注意点として、リストの1つ目の要素を取り出すときはオフセットに0を指定します。
list_test = ["1番目","2番目","3番目"]
list_test[0]
>>>"1番目"
list_test[1]
>>>"2番目"
list_test[2]
>>>"3番目"
タプル
タプルは
- 要素が書き換えられるのを防ぎたい
- リストと比べて関数が少ない
という特徴があります。