複数のデータを扱うためのデータ型には、
- 順序付きの「リスト」と「タプル」
- リスト [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
リストの範囲外エラーがかえります。
コメント