LESSON 15 ・ リスト
リストとwhile
要素を更新する
a = [65, 90, 85]
print(a[0])
print(a[1])
print(a[2])
a[0] = 67
print(a[0])
a[0] = 67のように、インデックスを指定して特定の要素だけ更新することもできます。
ループですべての要素を処理する
a = [65, 90, 85]
i = 0
while i < 3:
print(a[i])
i += 1
リストを使えばループと組み合わせて処理することができます。a[i]のように[ ]の中に変数を使うことができるので、ループで変数の値を1ずつ増やしながら処理することができるからです。
このiのように、ループの制御に使う変数をループ変数と呼ぶことがあります。ループ変数にはindexの頭文字を取ってよくiが使われます。
要素数に合わせて繰り返す
a = [65, 90, 85]
print(len(a))
i < 3のように、人数をコード中にベタ書き(ハードコード)してしまうと、人数が増えたときにコードも修正しなければなりません。lenを使えばリストの長さ(要素数)を得ることができます。この例では3が出力されます。
a = [65, 90, 85]
n = len(a)
i = 0
while i < n:
print(a[i])
i += 1
lenを使えば、さっきのループのコードはこのように書き換えられます。
a = [65, 90, 85]
i = 0
while i < len(a):
print(a[i])
i += 1
lenの結果を変数に代入せず、条件式に直接len(a)を使うこともできます。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
点数65、90、85をまとめたリストの最初の要素を70に更新し、更新後の値を表示してください。
答えと解説を見る
模範解答
scores = [65, 90, 85]
scores[0] = 70
print(scores[0])
インデックス0を指定して代入すると、最初の要素だけを更新できます。
問題2
[4, 8, 12, 16]のすべての要素を、whileを使って順番に表示してください。繰り返す回数は要素数から求めてください。
答えと解説を見る
模範解答
numbers = [4, 8, 12, 16]
i = 0
while i < len(numbers):
print(numbers[i])
i += 1
ループ変数iをインデックスとして使います。len(numbers)まで繰り返すため、要素数を変えても同じコードで処理できます。
問題3
点数60、75、90をまとめたリストがあります。whileを使って、すべての点数を5ずつ増やし、更新後の値を順番に表示してください。
答えと解説を見る
模範解答
scores = [60, 75, 90]
i = 0
while i < len(scores):
scores[i] += 5
print(scores[i])
i += 1
scores[i]を使うと、ループのたびに異なる要素を更新できます。表示される値は65、80、95です。