[Python入門]#07 list型の作成と要素へのアクセス方法

今回はPythonのlist型。言語によっては配列やArrayといった型がよく使用されますが、Pythonではこのlistが非常に使用頻度が高いです。

今回はその基礎的な作成方法と、各要素へのアクセス方法を解説していきます。

list型の新規作成

まずは実際にリストを作成していきます。

list = [1,2,3,4,5]
list2 = ["東京",2020,"オリンピック"]
empty_list = []

これで3つのリストが作成されました。リストを作成するにはまず角括弧"[]"で全体を囲み、その中に要素をカンマで区切って入れていきます。

Pythonやその他のスクリプト言語では2つ目のリストのように、文字列と整数といった型が異なる要素を1つのリストに含めることが可能になっています。

3つ目は要素の無い、空のリストです。これはこれで1つの値として成立しています。type関数で確かめてみると、

print(type(list))     #<class 'list'>
print(type(empty_list))     #<class 'list'>

どちらも同じlist型であることが分かります。

各要素へのアクセス

では作成したリストから要素を1つ取り出してみましょう。

print(list[0])     #1
print(list2[2])     #オリンピック
print(["香取","草薙","稲垣"][1])     #草薙

リストの各要素へアクセスするには、リストやlist型の変数に続けて角括弧、その中に要素が入っている番号を入れて呼び出します。

この番号をインデックス番号(または添え字)といいます。インデックス番号は要素が入っている順番に「0,1,2」と並んでいます。

ちょうど番号の付いた箱が並んでいるところをイメージすると分かりやすいのではないでしょうか。

インデックス番号を指定する場合には特に0から始まるという点に気を付けましょう。例えば3つしか要素が入っていないリストに対し、3番目を指定してしまうとこのようなエラーが現れます。

print(["香取","草薙","稲垣"][3])
#IndexError: list index out of range
インデックスのエラー: 指定されたインデックス番号はリストの範囲外である

最後から数えた番号で指定する

そうは言っても例えば要素数が多くなった場合、このエラーを避けるためにいちいち要素数を数えたりするのは面倒です。

そういった場合は「リストの最後から数えたインデックス番号」で要素を指定してみましょう。

list = [10,20,30,40,50,60,70,80]
print(list[-1])     #80
print(list[-4])     #50

インデックス番号に「-1」を指定することで、そのリストの最後の要素を指定することができ、同じようにマイナスを付けて数値を増やしていくと、「後ろから数えて○番目」といった表現が可能になります。

ちなみに「-0」を指定した場合は[0]を指定したときと同じ、リストの最初の要素が出てきます。

複数の要素を指定する

では「ここからここまで」を指定するにはどうすればいいでしょうか?

Pythonではリストの要素を複数指定することも簡単にできます。先ほどと同じリストを使用して確かめてみましょう。

list = [10,20,30,40,50,60,70,80]
print(list[1:4])     #[20, 30, 40]

2行目の[1:4]の部分ではコロンで2つの数値を区切り、「ここからここまで」と要素を複数指定しています。Pythonではこれをスライスと呼びます。

この場合リストの「1番目の要素~4番目の手前の要素」までを指定していることには注意です。つまり、0始まりで4番目の「50」はここには入りません。

番号を指定しないスライス

最後に数値を指定せず、「ここから最後まで」と「最初からここまで」を指定する方法です。

list = [10,20,30,40,50,60,70,80]
print(list[:3])     #[10, 20, 30]
print(list[3:])     #[40, 50, 60, 70, 80]

上記のコードでは、スライスの最初の数値、最後の数値がそれぞれ欠けています。エラーになるかと思いきや、これは正しいコードです。

list[:3]とした場合、始まりを指定していないので「最初から指定した手前の要素まで」、

list[3:]とした場合、終わりを指定していないので「指定した要素から最後まで」を意味します。

おさらい

少々ややこしい部分もありますが、このlist型は頻繁に使用する型なのでぜひ覚えておきたいところです。

  1. list型の作成は角括弧[]で要素全体を囲む。要素はカンマで区切る
  2. 空のリストも作成可能である
  3. 各要素の指定はインデックス番号を使用する
  4. インデックス番号は0から始まる
  5. ある範囲の複数要素を指定するにはスライスを使用する
  6. 指定されるのはスライスの右側の数値より1つ前の要素まで
タイトルとURLをコピーしました