今回はリスト(配列)について解説します。
変数を学んだときに、変数は「箱」のようなものとお話しましたが、その箱には1つのデータしか入れられないのに対して、リストは複数のデータを入れることができる「引き出し」というイメージ持ちながら、
この先を読み進めてもらうことで、理解が深まりリストを上手に使いこなせyりくでしょう。
リストとは

リストとは
リストとは、複数のデータを格納することができるデータ型になります。
また、リストと配列の違いについては、他のプログラミング言語で「配列(array)」と呼ばれるものがありますが、
実は、Pythonには配列という言葉はありません。「リスト(list)」といいます。
そのため、配列という言葉は使わず、今後は「リスト」に統一します。
Pythonでは他の言語のように宣言をする際にデータ型を指定する必要がないことや、構成する各要素の型が違っていても問題がないことから、Pythonはリストが配列の役割を担っているのです。
リストの1つ1つの箱のことを「要素」といい、そのリストのそれぞれの要素には、場所の情報が割り当てられています。
データがある土地の番地のようなイメージですが、これには「インデックス」という番号が割り当てられていて、一番左のインデックスは「0」から始まります。
(「1」からではなく「0」からなので気をつけてください。)
そのため、1番目のインデックスは「0」で、5番目のインデックスは「4」、といった感じで、インデックスはリストが格納されている順番よりも「順番 – 1」となるわけです。
リストを作るには

リストを作るには
それでは、リストを作ってみましょう。
書き方のルールは下記のようになります。
変数 = [データ1,データ2,データ3]
リストを作るには、角括弧を使って定義し、それぞれの要素はカンマで区切っていきます。
(例)「name」という変数に、「Aさん、Bさん、Cさん」という3つのデータが入ったリストを作ってみます。
name = ["Aさん","Bさん","Cさん"]
print(name)
# 出力結果: ["Aさん","Bさん","Cさん"]
リストの要素の参照方法

リストの要素の参照方法
作ったリストの要素にアクセスしてみましょう。
要素にアクセスするにはインデックスを使います。
変数の後に角括弧を付けて、角括弧の中にインデックスを指定することで、対応したリストの要素にアクセスできます。
(例)リストの要素にアクセスする
name = ["Aさん","Bさん","Cさん"]
print(name[0])
# 実行結果:Aさん
print(name[1])
# 実行結果:Bさん
print(name[2])
# 実行結果:Cさん
リストの要素の変更方法

リストの要素の変更方法
今度はデータの変更をしてみます。
変更する要素を指定して代入します。
(例)リストの3番目の「Cさん」を「Dさん」に変更してみます。
3番目を変更する場合は、角括弧に書くインデックスは「2」となります。
name = ["Aさん","Bさん","Cさん"]
name[2] = "Dさん"
print(a[0])
# 実行結果:Aさん
print(a[1])
# 実行結果:Bさん
print(a[2])
# 実行結果:Dさん
多次元リストの作成方法

多次元リストの作成方法
リストの中にリストを入れることもできます。
何だか訳が分からなくなってきましたか? 難しく考えなくて大丈夫です。
リストの中にリストを入れる場合は、角括弧の中に更に角括弧を書き、そこに代入するデータを記述すればよいので、要素へのアクセスについても、角括弧を2回使用すればよいだけです。
(例)
name = [[“Aさん”,”Bさん”,”Cさん”],[“”Xさん”,”Yさん”,”Zさん”]]
- Aさんは、1つ目リストの1番目なので「0-0」になります。
- Bさんは、1つ目リストの2番目なので「0-1」になります。
- Cさんは、1つ目リストの3番目なので「0-2」になります。
- Xさんは、2つ目リストの1番目なので「1-0」になります。
- Yさんは、2つ目リストの2番目なので「1-1」になります。
- Zさんは、2つ目リストの3番目なので「1-2」になります。
name = [["Aさん","Bさん","Cさん"],[""Xさん","Yさん","Zさん"]]
print(name[0][0])
# 実行結果:Aさん
print(name[0][1])
# 実行結果:Bさん
print(name[0][2])
# 実行結果:Cさん
print(name[1][0])
# 実行結果:Xさん
print(name[1][1])
# 実行結果:Yさん
print(name[1][2])
# 実行結果:Zさん
リストの初期化

リストの初期化
リストの初期化を紹介します。
リストは、[ ]の中にカンマで区切られた要素で構成されるという解説をしてきましたが、リストの初期化を行う必要が出てきた場合は、[ ] の中身を空で宣言すると、リストが初期化されます。
(変数) = []
例
name = []
# 初期化されます。
要素の追加

要素の追加
既存のリストに新たな要素を追加するには、「appendメソッド」を使用します。
(変数).append(追加する要素)
(例)リストに「Dさん」を追加してみます。
name = ["Aさん","Bさん","Cさん"]
name.append("Dさん")
print(name[0])
# 実行結果:Aさん
print(name[1])
# 実行結果:Bさん
print(name[2])
# 実行結果:Cさん
print(name[3])
# 実行結果:Dさん
要素の削除

要素の削除
既存のリストからある特定の要素を削除するには、いくつかの方法がありますが、最も使われているのは「removeメソッド」です。
(変数).remove(削除する要素)
(例)リストから「Bさん」を削除してみます。
name = ["Aさん","Bさん","Cさん"]
name.remove("Bさん")
print(name[0])
# 実行結果:Aさん
print(name[1])
# 実行結果:Cさん
インデックスの削除

インデックスの削除
値ではなく、リスト内の特定のインデックスを削除したい場合は「popメソッド」を使用します。
deleted変数 =(変数).pop(削除するインデックス)
(例)リストから2番目を削除してみます。
name = ["Aさん","Bさん","Cさん"]
deleted = name.pop(1)
print(deleted)
# 実行結果:1
# リストから2番目が削除されたことになります。
print(name[0])
# 実行結果:Aさん
print(name[1])
# 実行結果:Cさん
上記のように「popメソッド」を使用してインデックス2番目の要素を削除しました。
また、「popメソッド」は戻り値として削除した要素の値を返すので、「deleted変数」に「popメソッド」の戻り値を格納させた後に、「print関数」で表示させると、削除された要素の値1が出力されます。
要素の検索

要素の検索
リストにある要素が入っているかどうかを調べるには、「in演算子」を使用します。
print((要素) in (変数))
(例)リストから「Aさん」と「Eさん」を検索してみます。
name = ["Aさん","Bさん","Cさん"]
print("Aさん" in name)
# 実行結果:True
print("Eさん" in name)
# 実行結果:False
上記のコードでは、「in演算子」を使用して、「True」か「False」のどちらかを表示されるようにしたもので、
この場合「True」はリストに存在する。という意味で、「False」はリストに存在しない。という意味になります。
リストのサイズを取得する

リストのサイズを取得する
リストのサイズ(要素数)を取得するには、「len()関数」を使用します。
lenの引数にはリストを指定します。
print(len(変数))
(例)リストの要素数を取得することができます。
name = ["Aさん","Bさん","Cさん"]
print(len(name))
# 実行結果:3
上記のように「len()関数」を使用することでリストのサイズを簡単に取得できます。
例題は、要素の数は3つしかないリストですから容易に数えられるものですが、千単位、万単位の要素がある場合は非常に便利な関数です。
また「len()関数」はリストが空の場合は「0」を返します。