タグ: 繰り返し処理

  • 【初心者向け】Pythonでリスト(配列)を使った繰り返し処理 — for文と組み合わせた実践例

    公開日: 2025-10-30|更新日: 2025-10-30

    この記事では、Pythonのリスト(配列)for文を組み合わせた基本的な使い方を、初心者向けにわかりやすく解説します。コピペで動くサンプルと練習問題付きなので、すぐに練習できます。

    1. リストとは?

    リストは複数の値を順序付きで保存できるデータ型です。角かっこ [] を使って定義します。

    # リストの例
    fruits = ["apple", "banana", "orange"]
    numbers = [1, 2, 3, 4, 5]
    mixed = ["Python", 3.14, True]

    リストは追加・削除・変更が可能(ミュータブル)で、順番にアクセスできます。

    2. リストをfor文で繰り返す基本

    最も基本的なパターンは次の通りです。

    fruits = ["apple", "banana", "orange"]
    
    for fruit in fruits:
        print(fruit)

    出力:

    apple
    banana
    orange

    この書き方は「リストの各要素を順に取り出して処理する」場合に使います。

    3. インデックスが必要なとき(enumerate

    要素の位置(インデックス)も使いたい場合は enumerate を使います。

    fruits = ["apple", "banana", "orange"]
    
    for i, fruit in enumerate(fruits, start=1):
        print(i, fruit)

    出力:

    1 apple
    2 banana
    3 orange

    start=1 を指定すると 1 からカウントします(デフォルトは 0)。

    4. ネストしたリスト(多次元リスト)を扱う

    表のようなデータを扱うときは、リストの中にリストを入れます。for文を二重に使えば、各要素にアクセスできます。

    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    
    for row in matrix:
        for value in row:
            print(value, end=" ")
        print()  # 改行

    出力:

    1 2 3 
    4 5 6 
    7 8 9 

    5. 実践例:成績の平均・フィルタリング・集計

    例1:学生の点数の平均を求める

    scores = [70, 85, 90, 60, 75]
    
    # 合計
    total = 0
    for s in scores:
        total += s
    
    average = total / len(scores)
    print("平均点:", average)

    例2:合格者だけ抽出する(フィルタリング)

    scores = [70, 85, 90, 60, 75]
    pass_scores = []
    
    for s in scores:
        if s >= 70:
            pass_scores.append(s)
    
    print("合格者の点数:", pass_scores)

    例3:点数ごとの人数カウント(辞書を使う)

    scores = [70, 85, 90, 60, 75, 70]
    count = {}
    
    for s in scores:
        if s in count:
            count[s] += 1
        else:
            count[s] = 1
    
    print(count)  # 例: {70: 2, 85: 1, 90: 1, 60: 1, 75: 1}

    ヒント:上のカウント処理は collections.Counter を使うと簡潔に書けます(今は基本を優先)。

    6. 練習問題(解答付き)

    問題1

    リスト [3, 6, 9, 12] の各要素を2乗して新しいリストを作ってください。

    解答(クリックで表示)
    nums = [3, 6, 9, 12]
    squares = []
    for n in nums:
        squares.append(n**2)
    
    print(squares)  # [9, 36, 81, 144]

    問題2

    文字列のリスト ["apple", "pear", "banana"] の中から、文字数が5文字以上の単語だけを抽出してください。

    解答(クリックで表示)
    words = ["apple", "pear", "banana"]
    long_words = []
    for w in words:
        if len(w) >= 5:
            long_words.append(w)
    
    print(long_words)  # ['apple', 'banana']

    7. まとめと次に読む記事

    今回はリストとfor文を組み合わせる基本と、実践的な例を紹介しました。ポイントをまとめます:

    • リストは複数の値を順序付けて持てるデータ型
    • for文で各要素を順番に取り出して処理する
    • インデックスが必要なら enumerate
    • 二次元データはネストしたループで処理できる

    次に読むと良い記事(リンク先はご自身のブログURLに置き換えてください):

    この記事が役に立ったら、記事の最後に次のCTAを置くと良いです:

    「役に立ったらシェアお願いします!質問があればコメント欄へどうぞ。もっと練習問題が欲しい方は、プロフィールのリンクから無料PDFをダウンロードできます。」

    参考・補足

    実践を通して覚えるのが一番早いので、上の練習問題を実際に手を動かして試してみてください。分からない点があればコメントで質問してください。

    (この記事は初心者向けに簡潔化しています。パフォーマンス改善や大規模データ処理の話は別記事で解説予定です。)