本文へスキップ

Python Typing Tutor

サンプルレッスン一覧

Chapter 3 / Functions & Lists

Lesson 3.2 リスト走査と集計

list を for で回し、合計や平均を計算します。

このページは無料で閲覧できるサンプルです。実際に手を動かして写経し、進捗を保存して学習を進めるには、ログインしてから学習ページへお進みください。

このレッスンで学ぶこと

リスト (list) は、複数の値を順序付きでひとまとめにして扱うための Python の基本データ構造です。[1, 2, 3] や ["apple", "banana"] のように [ ] で囲み、, で区切って作ります。スコア、価格、ユーザー名など、同じ種類の値が複数並ぶ場面は、ほぼすべてリストで表現できます。

リストと for 文の組み合わせは、Python の集計処理の心臓部です。本レッスンでは、合計・平均という最も基本的な集計を題材に、「リストを 1 件ずつ取り出して累積する」という型を身に付けます。同じ型は、最大値、最小値、件数、フィルタリング (条件に合うものだけ集める) など、応用範囲の広いパターンです。

写経 1

写経 1

文字列のリストを順番に表示します。

お手本コード
fruits = ["apple", "banana", "melon"]
for fruit in fruits:
    print(fruit)
期待される出力
apple
banana
melon

写経 2

写経 2

数値のリストを回して合計を取り、平均を出します。

お手本コード
scores = [72, 88, 91, 79]
total = 0

for score in scores:
    total += score

average = total / len(scores)
print("average:", average)
期待される出力
average: 82.5

発展問題 (概要のみ)

発展問題

好きな 4 つの数字のリストを作り、最大値と最小値を表示してみましょう。

スターターコード
numbers = []

発展問題の自動採点はログイン後の学習ページでのみ動作します。

リストを for で 1 つずつ取り出す

for value in scores: と書くと、scores の中身が 1 件ずつ順番に value に代入され、内側のブロックが要素の数だけ繰り返されます。range と組み合わせる場合と違って、インデックスを自分で管理する必要がない (i = 0 → i += 1 のような書き方が不要) のが Python の強みです。インデックスが本当に必要なときは enumerate(scores) を使うと (i, value) のペアで取り出せますが、これは少し先のテーマです。

集計の基本: 合計と平均

合計は total = 0 で初期化し、for の中で total += value、最後に print(total) です。平均はさらに len(scores) で要素数を取り、total / len(scores) で割れば求まります。len() はリスト、文字列、辞書など多くのデータ型の要素数を返す万能関数で、空のリスト (要素 0 件) で割ると ZeroDivisionError が出るので、必要なら if len(scores) > 0: でガードします。

リストの主な操作

  • 要素の追加: scores.append(95) で末尾に追加
  • 要素の取り出し: scores[0] で先頭、scores[-1] で末尾 (負のインデックス)
  • 要素数: len(scores)
  • 最大/最小/合計: max(scores)、min(scores)、sum(scores) (組み込み関数)
  • ソート: scores.sort() で破壊的に並び替え、sorted(scores) で新しいリストを返す

組み込み関数を使うとループは不要なことも多い

実は合計を求めるだけなら sum(scores)、最大値を求めるだけなら max(scores) と書けば 1 行で済みます。本レッスンであえて for ループで書いているのは、「裏側で何が起きているか」を体に染み込ませるためです。複雑な条件 (条件に合うものだけ集計、複数のリストを横断する集計) になると組み込み関数だけでは書けず、for ループの考え方が必須になります。両方の書き方を持っていて、状況に応じて使い分けられる状態が理想です。

手を動かして練習しましょう

ログインすると、お手本コードを 1 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。