【Python】レッスン4-06:リストのループ処理を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:リストのループ処理

この記事の練習問題で使用する知識:
1.基礎文法、2.制御構造、3.関数とスコープ、4.データ構造5.オブジェクト指向

<<前のページ Python記事一覧
次のページ>>

Pythonの「リストのループ処理」とは

この章ではPythonにおける「リストのループ処理」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。




Pythonではリストの要素を効率的に処理するために「ループ処理」をよく使用します。

ループを使うことで、リストに含まれる複数の要素に対して同じ操作を繰り返すことができ、簡潔なコードで多くの処理を行うことができます。

リストのループ処理とは?

リストのループ処理とは、リストに含まれている複数の要素に対して繰り返し処理を行う操作のことです。

Pythonでループ処理を行うには主にfor文を使用します。for文を使うことでリストの先頭から最後の要素までを順に処理できます。

基本的な書式は次の通りです。

for 要素 in リスト:
    処理内容

この構文ではリスト内の各要素が順番に要素に代入され、それに基づいて処理内容が実行されます。

これによりリスト全体に対して一度に同じ操作を行うことができます。

リストのループ処理の使用例

続いてリストをループして各要素を処理する基本的な例を紹介します。

# リストを定義
fruits = ["apple", "banana", "cherry", "date"]

# リストの各要素をループして出力
for fruit in fruits:
    print(fruit)

このコードを実行すると以下のように出力されます。

apple
banana
cherry
date

このコードではリストfruitsに含まれる各フルーツ名が順番にfruitに代入され、print(fruit)が実行されることですべての要素が表示されます。

このようにfor文を使うことでリスト内のすべての要素に対して同じ処理を簡単に行えます。

次にリスト内の数値を使ってより複雑な処理を行う例を見てみましょう。

# 数値のリストを定義
numbers = [1, 2, 3, 4, 5]

# 各数値の2乗を出力
for number in numbers:
    square = number ** 2
    print(f"{number}の2乗は{square}です")

このコードを実行すると以下のように出力されます。

1の2乗は1です
2の2乗は4です
3の2乗は9です
4の2乗は16です
5の2乗は25です

このようにリスト内の数値を使った計算や条件付きの処理も簡単に行うことができます。

リストのループ処理の応用

リストのループ処理は単純な出力だけでなく、条件付き処理やネストされたループなどの応用的な使い方もできます。

例えば、条件付きで特定の要素だけを処理する場合にはif文を併用します。

# 偶数だけを処理する
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
    if number % 2 == 0:
        print(f"{number}は偶数です")

このコードを実行すると以下のように出力されます。

2は偶数です
4は偶数です
6は偶数です

この例ではリストnumbers内の要素のうち、偶数のみを条件付きで処理しています。

またループをネストすることで、二次元リストのような複雑なデータ構造を処理することも可能です。

ネストとは、プログラム内で構造を「入れ子状」にすることを指します。たとえば、ループの中にさらにループを入れたり、条件分岐の中に別の条件分岐を入れることをネストと呼びます。ネストは、複雑なデータ構造や繰り返し処理を効率的に行うために使用されます。

例として、二次元リストの処理では、外側のループで行を、内側のループでその行の要素を処理します。ネストを理解することで、プログラムの柔軟性が向上し、より高度な処理が可能になります。

まとめ

Pythonのリストのループ処理はデータを効率的に処理するための強力なツールです。

for文を使うことでリストのすべての要素に対して簡単に繰り返し処理を行うことができ、条件付き処理やネストされたループを使用することで、さらに柔軟な処理が可能になります。

これらの基本的なループ処理を理解することで、複雑なデータ処理がより簡単になりますので、ぜひ練習してみてください。

練習問題4-5:1から9までの数を2乗して3つずつ表示しよう

1から9までの数字をリストに格納し、その各要素を2乗した値を計算して、3つずつカンマで区切って表示するプログラムを作成してください。

Pythonのリストとループ処理を使って、繰り返し操作とリストの扱い方を学びましょう。

問題の詳細条件

以下の要件に従ってコードを完成させてください。

  • リストnumbersに1から9までの数を格納すること。
  • ループ処理を使って、リスト内の各要素を2乗し、それを新しいリストsquared_numbersに格納すること。
  • squared_numbersを3つずつ取り出し、カンマで区切って表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

1,4,9
16,25,36
49,64,81

【ヒント】難しいと感じる人だけ見よう

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:リストnumbersの定義
2:空のリストsquared_numbersを定義
3:for文によってリストnumbersの各要素をループ処理
  □ループ内で要素の2乗を計算し、リストsquared_numbersに追加
4:3つずつ表示するためのforループの開始
  □squared_numbersの要素を3つずつ取り出して表示

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# 1から9までの数をリストに格納
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 空のリストに各数値の2乗を格納
squared_numbers = []

"""【穴埋め問題1】
ここにループ処理を使って、リストnumbers内の各要素を2乗し、squared_numbersに追加するコードを書いてください。
"""

"""【穴埋め問題2】
ここにリストsquared_numbersの要素を3つずつ表示するコードを書いてください。
"""

この問題の穴埋めコードは以上です。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



問題の答え合わせと解説

この問題の一つの正解例とそのコードの解説を以下に示します。

一つの正解例

例えば以下のようなプログラムが考えられます。

# 1から9までの数をリストに格納
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 空のリストに各数値の2乗を格納
squared_numbers = []

# ループ処理で各数値の2乗を計算し、リストに追加
for number in numbers:
    squared_numbers.append(number ** 2)

# 3つずつ出力するためのループ
for i in range(0, len(squared_numbers), 3):
    # リストを3つずつ表示
    print(f"{squared_numbers[i]},{squared_numbers[i+1]},{squared_numbers[i+2]}")

正解例の詳細解説

このコードではPythonのリストに対してループ処理を行い、各要素を2乗し、その結果を3つずつ表示する方法を学びます。

以下でコードの各ブロックを初心者向けに解説します。

リストの定義

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

まずnumbersというリストを定義しています。

このリストには1から9までの整数が格納されています。リストは[]で囲み、複数の値をまとめて扱うことができる便利なデータ構造です。

空のリストの作成

squared_numbers = []

ここではsquared_numbersという空のリストを定義しています。

このリストには後でnumbersリストの各要素を2乗した結果が格納されます。初期状態では空のリストを作成し、ループ処理の中で要素を追加していきます。

ループで各要素を2乗してリストに追加

for number in numbers:
    squared_numbers.append(number ** 2)

for文を使ってnumbersリストの各要素に対して処理を行っています。

このループはリストの要素を1つずつnumberに代入し、number ** 2で2乗を計算します。その結果をappend()メソッドを使ってsquared_numbersに追加しています。

3つずつ要素を表示するループ

for i in range(0, len(squared_numbers), 3):
    print(f"{squared_numbers[i]},{squared_numbers[i+1]},{squared_numbers[i+2]}")

range()関数を使いsquared_numbersリストの要素を3つずつ取り出して表示しています。

このループではiを使って3つの要素をまとめて出力しています。リスト内のデータを部分的に取り出し、カンマで区切って表示する便利な方法です。

まとめ

このコードではリストを使ってループ処理を行い、計算結果を整理して出力する方法を学びました。

リストのループ処理はデータを一括で処理する際に非常に有効です。この基本を理解しておくことで、より複雑なデータ操作にも対応できるようになります。

<<前のページ Python記事一覧
次のページ>>

質問用コンタクトフォーム

この記事はAIを用いて書いた記事です。

人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。






    Python記事一覧へ戻る
    トップページへ戻る