これまでは、x や score のように、1つの変数に1つの値を入れて扱ってきました。しかし、点数が10人分ある、部品名をまとめたい、センサー値を順番に記録したい、という場面では変数を何個も作るのは大変です。
リスト は、複数の値を順番に並べて1つの変数で管理する仕組みです。リストを使えるようになると、for ループと組み合わせて、たくさんのデータを同じ処理で扱えるようになります。

まずはPycoBlocksを開こう
下のPycoBlocksで直接作業するか、別タブで開き、生成されるPythonコードを見ながら進めてください。
| 用語 | 意味 | 例 |
|---|---|---|
| リスト(list) | 複数の値を順番に並べたデータ。[] で表す |
scores = [80, 65, 90] |
| インデックス(index) | リストの何番目かを指す番号。0から始まる | scores[0] → 先頭の要素 |
append() |
リストの末尾に値を追加するメソッド | scores.append(75) |
len() |
リストの要素数(個数)を返す関数 | len(scores) → 3 |
ステップ1:リストは「順番つきの入れ物」
リストは、値を左から順番に並べたデータです。Pythonでは [] を使って表します。PycoBlocksでは、まず「空のリスト」を作り、そこへ値を追加していきます。

fruits = []
fruits.append("apple")
fruits.append("orange")
fruits.append("grape")
print(fruits[0])
append() は、リストの最後に値を追加する命令です。上の例では、fruits という1つの変数の中に、3つの果物名を順番に入れています。
ステップ2:インデックスは0から始まる
リストの何番目かを指定する番号を、インデックスと呼びます。Pythonでは最初の要素が 0番目 です。2番目の要素を取り出したいときは 1 を指定します。

fruits = ["apple", "orange", "grape"]
print(fruits[0]) # apple
print(fruits[1]) # orange
print(fruits[2]) # grape
「1番目」と聞くと最初を想像しやすいですが、Pythonでは 0 が先頭です。このルールは、リスト・文字列・あとで学ぶアルゴリズムでも何度も出てきます。
ステップ3:長さを調べる・中身を書き換える
リストは、あとから値を追加したり、特定の場所の値を書き換えたりできます。要素数を調べるには len() を使います。

scores = []
scores.append(80)
scores.append(65)
scores.append(90)
scores[1] = 75
print(len(scores))
scores[1] = 75 は、1番目、つまり2つ目の値を75に書き換えます。len(scores) はリストの要素数を返すので、この例では 3 が表示されます。
ステップ4:リストとforを組み合わせよう
リストの強みは、複数の値をまとめるだけではありません。for と組み合わせると、リストの中身を1つずつ取り出して同じ処理を実行できます。

parts = []
parts.append("LED")
parts.append("sensor")
parts.append("motor")
for item in parts:
print(item)
for item in parts: は、parts の中身を先頭から順に item へ入れて繰り返します。リストの要素数が増えても、同じ形のコードで処理できます。
コーディングモードで書いてみよう
コードで書くと、リストはデータ処理の入口になります。たとえば、複数の点数をリストに入れておき、合計と平均を計算できます。
scores = [80, 65, 90, 75]
total = 0
for score in scores:
total = total + score
average = total / len(scores)
print("合計:", total)
print("平均:", average)
len(scores) を使うと、点数の個数をコード中に直接書かずに済みます。リストの中身が増えても、平均を求める式を変えなくてよい点が便利です。
演習課題
演習では 0-7 で学んだ if 文をリストの for 処理と組み合わせます。条件を満たす要素だけを取り出す書き方を練習します。
課題12-1:果物リストの先頭を表示しよう
空のリスト fruits を作り、apple、orange、grape を追加してください。そのあと、先頭の要素を表示してください。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

fruits = []
fruits.append("apple")
fruits.append("orange")
fruits.append("grape")
print(fruits[0])
解説: fruits[0] は先頭の要素を表します。Pythonのインデックスは0から始まる点を確認してください。
課題12-2:2つ目の点数を書き換えよう
scores に 80, 65, 90 を追加し、2つ目の点数を75に書き換えてください。最後にリストの長さを表示してください。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

scores = []
scores.append(80)
scores.append(65)
scores.append(90)
scores[1] = 75
print(len(scores))
解説: scores[1] は2つ目の要素です。len(scores) はリストの長さを返します。
課題12-3:部品名を順番に表示しよう
parts に LED、sensor、motor を追加し、for を使って1つずつ表示してください。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

parts = []
parts.append("LED")
parts.append("sensor")
parts.append("motor")
for item in parts:
print(item)
解説: for item in parts: により、リストの中身が先頭から順に item に入ります。
課題12-4:点数の合計を求めよう
scores = [80, 65, 90, 75] とし、for を使って合計を求めて表示してください。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

scores = [80, 65, 90, 75]
total = 0
for score in scores:
total = total + score
print(total)
解説: total を0から始め、点数を1つずつ足していきます。リストの中身が増えても、ループの形は同じです。
課題12-5:平均点を求めよう
課題12-4を発展させ、合計だけでなく平均点も表示してください。平均は 合計 / 個数 で求めます。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

scores = [80, 65, 90, 75]
total = 0
for score in scores:
total = total + score
average = total / len(scores)
print("合計:", total)
print("平均:", average)
解説: len(scores) で点数の個数を調べています。個数を直接4と書かないので、点数が増えても直しやすいコードになります。
課題12-6:70点以上だけを数えよう
scores = [80, 65, 90, 75] から、70点以上の点数が何個あるかを数えて表示してください。
▶ 模範解答と解説を見る
ブロックの組み合わせ例:

scores = [80, 65, 90, 75]
count = 0
for score in scores:
if score >= 70:
count = count + 1
print(count)
解説: 0-7で学んだ if とリストの for を組み合わせています。条件を満たしたときだけ count を1増やします。
まとめ
- リストは、複数の値を順番つきでまとめるデータです
- Pythonのインデックスは0から始まります
append()で末尾に追加し、len()で長さを調べますlist[index]で取り出し、list[index] = 値で書き換えます- リストと
forを組み合わせると、複数データを同じ処理で扱えます
次は 辞書 を学びます。リストが「順番」でデータを管理するのに対し、辞書は「名前つきのキー」でデータを管理します。→ Python × 入門 | #13 辞書を使いこなそう