これまで、数値や文字列などの使い方を学んできましたが、こういった個別の値ひとつひとつではなく、一連の値を並べて、ひとまとめにした情報というのもよく必要になります。
たとえば、「東海道新幹線の停車駅」という情報は、「東京, 品川, 新横浜, 小田原, 熱海」 という、駅の名前の文字列を、停車順に並べた情報です。あるいは、「ある伝染病の毎日の感染者数を一週間分」という情報は、「100, 125, 110, 135, 93, 95, 93」のような、毎日の感染者数の整数を7つ、日付順に並べた情報です。このような、複数の値を決まった順番に並べ、ひとまとめにした情報は日常生活でもよく見かけます。
こういった、決まった順番に並んだ値で構成される情報は、Pythonでは リストオブジェクト で表現します。リストオブジェクトは、他のオブジェクトを 要素 として登録できるオブジェクトで、他のプログラミング言語では配列などと呼ばれることもあります。
リストオブジェクトの作成¶
リストオブジェクトは、次のように 角カッコ [
と ]
で作成します。
[要素1, 要素2, ...]
[
と ]
の間には、リストの要素となるオブジェクトを、,
で区切って指定します。東海道新幹線の下りの停車駅は、文字列を格納したリストとして、次のように書けます。
stations = ["東京", "品川", "新横浜", "小田原", "熱海"]
リストをprint()
すると、中の要素を出力します。作成したリストを出力して中身を確認してみましょう。
print(stations)
stations
は、5つの文字列オブジェクトを要素とするリストオブジェクトです。
一週間分の伝染病の感染者数は、整数を格納したリストとして、次のように書けます。
cases = [100, 125, 110, 135, 93, 95, 93]
print(cases)
cases
は、7つの整数オブジェクトを要素とするリストオブジェクトです。
要素が登録されていない、空のリストは []
だけで作成します。
empty_list = []
print(empty_list)
要素の参照¶
リストオブジェクトに登録した要素は、次のような式で参照できます。
リストオブジェクト[要素の順番]
リストオブジェクトに登録した要素を参照するときは、リストオブジェクトに、参照する要素の順番を指定します。最初の要素を参照するときは 0
、その次は 1
、のように指定します。前述の新幹線の停車駅では、0
が東京、1
が品川、… となります。
実際に、変数 stations
リストから停車駅を参照してみましょう。
print(stations[0])
print(stations[1])
print(stations[0], stations[1], stations[2], stations[3], stations[4])
インデックス(添字)¶
ここで指定している要素の順番のことを、インデックス(添字) と言います。リストの最後の要素のインデックスは、リストの要素数 - 1
となります。stations
リストの場合は要素が5つですので、最後の要素のインデックスは 4
となります。cases
リストには要素が7つ登録されていますので、最後の要素のインデックスは 6
となります。
最大値を超えるインデックスを指定すると、IndexError
というエラーが発生します。
stations[5]
リストオブジェクト[インデックス]
で参照した要素は、式の中で普通の値や変数とおなじように使えます。たとえば、cases
リストを使って3日分の感染者数の合計を求めるときには、次のように書けます。
cases = [100, 125, 110, 135, 93, 95, 93]
total = cases[0] + cases[1] + cases[2] # 7日前から5日前までの感染者数の合計を求める
print(total)