for文でリストの要素を処理しよう

学習の目標

本章では、以下の内容を学習します。

  • for文を使ってリストの要素を順番に処理する方法を理解する
  • リスト内の数値の合計を計算する方法を習得する
  • リスト内の最大値・最小値を見つける方法を学ぶ
  • リストの要素を使った基本的な検索処理を理解する

はじめに

前回はfor文とrange関数を使って数値の繰り返し処理を学びました。今回は、for文をリストと組み合わせて使う方法を学んでいきましょう。

リストには複数のデータが入っているため、それらのデータを一つずつ取り出して処理したい場面がよくあります。例えば、テストの点数が入ったリストから平均点を計算したり、商品の価格リストから最も安い商品を見つけたりする場合です。

このような「リストの中身を一つずつ処理する」作業は、プログラミングでは非常によく行われる処理です。for文を使うことで、リストの要素数に関係なく効率的にデータを処理できるようになります。

リストの要素を順番に表示する

まずは、リストに入っているデータを一つずつ取り出して表示する方法から始めましょう。

VS Codeでlist_for_basic.pyというファイルを作成し、以下のコードを入力してください。

# 果物のリスト
fruits = ["りんご", "みかん", "バナナ", "ぶどう"]

print("果物リスト:")
for fruit in fruits:
    print(fruit)

このコードでは、fruitsというリストの中身を一つずつ取り出しています。for fruit in fruits:という書き方により、リストの最初の要素から最後の要素まで順番にfruitという変数に代入されます。

実行すると、以下のような結果が表示されます。

果物リスト:
りんご
みかん
バナナ
ぶどう

ここで重要なのは、range関数を使わずに直接リストを指定していることです。Pythonでは、リストを直接for文で使うことで、その要素を順番に取り出すことができます。

変数名fruitは自由に決められます。リストの内容に合わせて分かりやすい名前をつけるとよいでしょう。

さらに詳しい表示をしてみましょう。同じファイルに以下を追加してください。

# 番号付きで表示
print("\n番号付き果物リスト:")
for fruit in fruits:
    print(f"- {fruit}")

実行結果は以下のようになります。

番号付き果物リスト:
- りんご
- みかん
- バナナ
- ぶどう

このように、リストの各要素に対して同じ処理を適用することができます。

リスト内の数値を合計する

次に、数値が入ったリストの合計を計算してみましょう。これは、テストの点数や売上データなど、実際のプログラムでもよく使われる処理です。

VS Codeでlist_sum.pyというファイルを作成し、以下のコードを入力してください。

# テストの点数リスト
scores = [85, 92, 78, 96, 88]

print("テストの点数:")
for score in scores:
    print(f"{score}点")

まず、リストの中身を確認します。実行すると以下のような結果が表示されます。

テストの点数:
85点
92点
78点
96点
88点

これで5人分のテスト結果が確認できました。次に、これらの点数の合計を計算してみましょう。同じファイルに以下を追加してください。

# 合計点を計算
total = 0

for score in scores:
    total = total + score
    print(f"現在の合計: {total}")

print(f"\n全体の合計点: {total}")

このコードでは、totalという変数を0で初期化し、リストの各要素を順番に足していきます。実行結果は以下のようになります。

現在の合計: 85
現在の合計: 177
現在の合計: 255
現在の合計: 351
現在の合計: 439

全体の合計点: 439

さらに平均点も計算してみましょう。同じファイルに以下を追加してください。

# 平均点を計算
average = total / len(scores)
print(f"平均点: {average}")

len(scores)でリストの要素数(この場合は5)を取得し、合計を要素数で割ることで平均を求めています。

実行結果は以下のようになります。

平均点: 87.8

リスト内の最大値と最小値を見つける

次に、リストの中から最も大きい値と最も小さい値を見つける方法を学びましょう。これも実際のプログラムでよく使われる処理です。

VS Codeでlist_max_min.pyというファイルを作成し、以下のコードを入力してください。

# 気温のデータリスト
temperatures = [23, 18, 25, 19, 22, 16, 24]

print("1週間の気温データ:")
for temp in temperatures:
    print(f"{temp}度")

まずリストの内容を確認します。実行すると以下のような結果が表示されます。

1週間の気温データ:
23度
18度
25度
19度
22度
16度
24度

次に、最高気温を見つけてみましょう。同じファイルに以下を追加してください。

# 最高気温を見つける
max_temp = temperatures[0]  # 最初の値で初期化

for temp in temperatures:
    if temp > max_temp:
        max_temp = temp
        print(f"新しい最高気温: {max_temp}度")

print(f"\n今週の最高気温: {max_temp}度")

このコードでは、最初にリストの先頭要素をmax_tempに代入し、その後の要素と比較していきます。より大きな値が見つかるたびにmax_tempを更新しています。

実行結果は以下のようになります。

新しい最高気温: 25度

今週の最高気温: 25度

同様に最低気温も見つけてみましょう。同じファイルに以下を追加してください。

# 最低気温を見つける
min_temp = temperatures[0]  # 最初の値で初期化

for temp in temperatures:
    if temp < min_temp:
        min_temp = temp
        print(f"新しい最低気温: {min_temp}度")

print(f"今週の最低気温: {min_temp}度")

実行結果は以下のようになります。

新しい最低気温: 18度
新しい最低気温: 16度
今週の最低気温: 16度

リスト内での検索処理

最後に、リストの中から特定の条件に合う要素を探す方法を学びましょう。

VS Codeでlist_search.pyというファイルを作成し、以下のコードを入力してください。

# 商品の価格リスト
prices = [1200, 800, 1500, 600, 2000, 900]

print("商品価格一覧:")
for price in prices:
    print(f"{price}円")

まず価格リストを確認します。実行すると以下のような結果が表示されます。

商品価格一覧:
1200円
800円
1500円
600円
2000円
900円

次に、1000円以下の商品を探してみましょう。同じファイルに以下を追加してください。

# 1000円以下の商品を探す
print("\n1000円以下の商品:")
affordable_count = 0

for price in prices:
    if price <= 1000:
        print(f"{price}円")
        affordable_count = affordable_count + 1

print(f"\n1000円以下の商品は {affordable_count}個です")

このコードでは、各価格をチェックして1000円以下の場合のみ表示し、同時に該当する商品の個数もカウントしています。

実行結果は以下のようになります。

1000円以下の商品:
800円
600円
900円

1000円以下の商品は 3個です

さらに、特定の価格の商品があるかどうかを調べてみましょう。同じファイルに以下を追加してください。

# 800円の商品があるかチェック
target_price = 800
found = False

for price in prices:
    if price == target_price:
        found = True
        break  # 見つかったらループを終了

if found:
    print(f"\n{target_price}円の商品が見つかりました")
else:
    print(f"\n{target_price}円の商品は見つかりませんでした")

ここではbreakという新しい機能を使っています。breakは、目的の要素が見つかった時点でfor文のループを終了する命令です。大きなリストを扱う場合、必要のない検索を避けることができます。

実行結果は以下のようになります。

800円の商品が見つかりました

まとめ

本章では、for文とリストを組み合わせた処理について学習しました。 理解できた内容は以下の通りです。

  • for文を使ってリストの要素を順番に処理できる
  • リスト内の数値の合計や平均を計算できる
  • リスト内の最大値・最小値を見つけることができる
  • 条件に合う要素を検索し、カウントできる
  • breakを使ってループを途中で終了できる

これらの技術を使うことで、リストに入ったデータを様々な方法で分析・処理できるようになりました。データの集計や検索は、実際のプログラム開発でも頻繁に使われる重要な処理です。

次回は、while文を使った条件付きの繰り返し処理について学んでいきましょう。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
for文で繰り返し処理を学ぼう