Pythonで機械学習を勉強する場合、「リスト」に関する知識は必須となります。初心者の方にとってはやや難しいかもしれませんが、頑張って分かりやすく説明したいと思います。
リストとは?
list(リスト)は、Pythonに用意されているデータ構造の一種です。整数や文字列など、複数の要素を1つのリストに格納して管理することができます。
リストを作る
リストを作るのはとても簡単です。たとえば、”Tokyo”,”Osaka”,”Nagoya”と日本の都市名を格納したリスト(リストの名前は、”town”)を作りたいとします。この時は、次のように書けば良いです。
town = ["Tokyo","Osaka","Nagoya"]
要素同士を区切るために、カンマ(,)を使っています。
整数だけが入ったリストも同様にして簡単に作成できます。
numbers = [1,2,3,4,5]
Listを作る際は、[]という記号を用意し、この記号に挟まるように要素を入力します。文字列の場合はクオーテーションマークも付けておきます。
複数のデータ型が含まれるリストも管理できる
Pythonでは、このようなリストを作ることもできます。
a = ['Tokyo',10,'Osaka',20]
このリストには整数(int)と文字列(String)の2つのデータ型が入っていますが、正常に実行できると思います。文字列と数字を同じリストで管理することが可能です。
リストに要素を追加する
リストの末尾に要素を追加する場合は、append()というメソッドを使います。
例えば、先ほどのリスト”town”に”Sapporo”を追加したい時は、次のように書きます。
town.append("Sapporo")
リストの順番
先ほどのリスト”town”には、”Tokyo”,”Osaka”,”Nagoya”,”Sapporo”の4つの要素が入っていますが、それぞれの要素を番号で表現することもできます。
リストには、「インデックス」という概念があります。インデックスは0からスタートしており、データが何番目に位置しているかを調べたい時に使えます。リスト”town”では、インデックスは次のようになっています。
要素 | Tokyo | Osaka | Nagoya | Sapporo |
インデックス | 0 | 1 | 2 | 3 |
表のように、インデックスはリストで一番最初に格納された要素(ここでは”Tokyo”)が0であり、その後は末尾に位置している”Sapporo”まで1ずつ増加します。(この番号のような、要素の位置を示す数字のことを「添え字」と言うこともあります。)
添え字を使って特定の要素だけを取り出す
この「インデックス(添え字)」はとても便利なもので、色々な場面で使うことになります。
リスト”town”で、”Tokyo”という要素だけを取り出したい場合は次のように書きます。
town[0]
これで実行すれば、”Tokyo”という文字列が出力されるはずです。リスト名[要素の位置]とするだけで、特定の場所にいる要素を取り出すことができます。
添え字をよりテクニカルに活用する
添え字を使うと、複数の要素を抽出することができます。
リスト名[整数a:整数b]とすると、先頭からa番目からb-1番目までの全ての要素全てを取り出すことができます。
例:
numbers = [1,2,3,4,5,6,7,8,9,10]
print(numbers[2:5]) #2番目から4番目までの要素を出力
リストの要素の場所を数える際は、0番目、1番目、2番目、と数えるので注意が必要です。上記リスト”numbers”において、2番目の要素は”3″、4番目の要素は”5″です。
リスト名[整数a:整数b:整数c]とすると、間隔を空けて要素を取り出すことができます。
例:
numbers = [1,2,3,4,5,6,7,8,9,10]
print(numbers[1:8:2]) #1番目から7番目までの要素を出力(2個分だけ飛ばして出力)
空のリストを作ることもできる
リストを作る際は必ずしも最初から要素を用意しておく必要はありません。要素が1つも存在しない「空リスト」を作ることも可能です。
例:空リストの作成
empty_list = []
print(len(empty_list)) #要素は一つもないので、"0"と出力される
今後投稿する記事にて紹介しますが、len()はリストの要素数を取得するメソッドです。これを使うと、空リストには要素が1つも入っていないことがすぐに分かります。
空リストは、今後の処理のためにリストを作っておきたいが、何を要素として入れるかが不明確な場合に活用します。
リストの基本については以上となります。