Python 入門 ノート (8)リスト

複数のデータを扱うためのデータ型には、

  • 順序付きの「リスト」と「タプル
    • リスト [10, 20, 30, 40]
    • タプル   (“Bob”, 35, 180)
  • 順序なしで重複を許さない「集合型
    • {“Japan”, “China”, “England”}
  • キーと値で管理する「辞書型
    • {“math”: 85, “English”: 93}

があります。

最もよく使う「リスト」から見ていきます。

リスト

テストを5回受けた結果、点数が下記のようになったとします。

score_1 = 60
score_2 = 85
score_3 = 73
score_4 = 69
score_5 = 82

変数が5つ生じます。すると合計の計算式は

score_1 + score_2 + score_3 + score_4 + score_5

こんな長い式になりますね。
また、変数を一つ変更するにも手間がかかります。もし1,000個だったら大変です。

では リスト を利用します。

[60, 85, 73, 69, 82]

このような表示をリスト型のリテラル表現と呼びます。

このリストを、変数に代入してみます。すると一つの変数で済みます。

scores = [60, 85, 73, 69, 82]

変更も簡単です。

リストの関数

さらにリスト型で利用できる関数を使えます

合計は sum 関数で一発に計算できます。(ターミナルを立ち上げます。)

>>> sum(scores)
369

簡単ですね。

リストの要素

変数にリストを代入して、変数を呼び出すと以下の様になりました。(ターミナル)

>>> scores = [60, 85, 73, 69, 82]
>>> scores [60, 85, 73, 69, 82]

[] の中の一つ一つの数字を、リストの要素と呼びます。

要素は同じ型である必要はありません。文字列型や真偽値が混ざっていてもOKです。
でも、リストは大量のデータを処理する場合が多いので同じ型が多いです。

それぞれの要素を呼び出すには、0 から始まるインデックス番号を使います。
インデックス番号を使って変更も簡単になります。

インデックス

最初のリストの要素 60 はインデックス番号 0 ですので、次のように書きます。

>> scores[0]
60

2番目の要素 85はインデックス番号 1 です。

>>> scores[1]
85

5 番目の要素 82はインデックス番号 4 です。
また、5 番目の要素 82はインデックス番号 -1 とも書けます。

>>> scores[4]
82
>>> scores[-1]
82

4番目の要素 69はインデックス番号 3 です。
また、4番目の要素 69はインデックス番号 -2 とも書けます。

>>> scores[3]
69 >>> scores[-2]
69

要素の変更

インデックス番号を使って要素の値を変更してみます。

>>> scores[1] = 100
>>> scores
[60, 100, 73, 69, 82]

インデックス番号 1 の値、つまり2番目の 85 が 100 に変更されました。

エラー index out of range

今回のインデックスの範囲は0~4までの5つなので、この範囲超える値を指定するとエラーになります。

例えば、インデックス番号100 の値を 500 にしてみます。するとエラーが返ります。

>>> scores[100] = 500
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

list assignment index out of range

リストの範囲外エラーがかえります。

 

コメント