Pythonのfor文で繰り返しの達人になる!基礎から応用まで徹底解説

はじめに

Pythonで繰り返し処理を行う際に欠かせないのがfor文です。for文は、指定した回数だけ、または特定のデータの集合に対して処理を繰り返すための構文です。この記事では、for文の基本的な使い方から、様々な場面で活用できる応用的な使い方まで、順を追って解説していきます。この記事を読み終える頃には、for文を自在に操り、効率的なPythonプログラミングができるようになっているはずです。

Pythonのfor文:基本的な使い方

for文の基本的な構文は、以下の通りです。

for 変数 in シーケンス:
    # 繰り返し実行したい処理

「シーケンス」の部分には、リストやタプル、文字列など、複数の要素を持つデータが入ります。for文は、シーケンス内の各要素を順番に取り出し、それを「変数」に代入します。そして、インデントされたブロック内の処理を、シーケンスの要素の数だけ繰り返します。

例えば、リストの要素を順番に出力する場合は、以下のように記述します。

fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits:
    print(fruit)

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

りんご
バナナ
みかん

for文とrange関数の組み合わせ:数値による繰り返し制御

for文とrange関数を組み合わせることで、数値による繰り返し制御が可能になります。range(n)は、0からn-1までの整数を生成するイテレータを返します。

例えば、0から4までの数値を出力する場合は、以下のように記述します。

for i in range(5):
    print(i)

出力結果は次のようになります。

0
1
2
3
4

range関数は、開始値、終了値、ステップを指定することも可能です。range(start, stop, step)は、startからstop-1までの整数をstep刻みで生成します。

for文とenumerate関数の組み合わせ:インデックスと要素の同時取得

enumerate関数は、シーケンスの要素とインデックスを同時に取得したい場合に役立ちます。enumerate(シーケンス)は、(インデックス, 要素)のタプルを生成するイテレータを返します。

例えば、リストの要素とインデックスを同時に出力する場合は、以下のように記述します。

fruits = ["りんご", "バナナ", "みかん"]
for i, fruit in enumerate(fruits):
    print(f"{i}番目の果物は{fruit}です")

出力結果は次のようになります。

0番目の果物はりんごです
1番目の果物はバナナです
2番目の果物はみかんです

for文とzip関数の組み合わせ:複数のシーケンスの同時処理

zip関数は、複数のシーケンスを同時に処理したい場合に役立ちます。zip(シーケンス1, シーケンス2, ...)は、各シーケンスから要素を一つずつ取り出してタプルを作成し、それらを返すイテレータを生成します。

例えば、2つのリストの要素を同時に処理する場合は、以下のように記述します。

names = ["田中", "佐藤", "鈴木"]
scores = [80, 90, 75]
for name, score in zip(names, scores):
    print(f"{name}さんの点数は{score}点です")

出力結果は次のようになります。

田中さんの点数は80点です
佐藤さんの点数は90点です
鈴木さんの点数は75点です

リスト内包表記:簡潔なfor文の記述方法

リスト内包表記を使用すると、for文を使ったリストの作成をより簡潔に記述することができます。例えば、0から9までの偶数のリストを作成する場合、通常のfor文では以下のように記述します。

even_numbers = []
for i in range(10):
    if i % 2 == 0:
        even_numbers.append(i)

これをリスト内包表記で記述すると、以下のようになります。

even_numbers = [i for i in range(10) if i % 2 == 0]

リスト内包表記は、for文を含む処理を1行で記述できるため、コードの可読性向上に繋がります。

まとめ

この記事では、Pythonのfor文について、基本的な使い方からrange関数、enumerate関数、zip関数との組み合わせ、そしてリスト内包表記まで、幅広く解説いたしました。for文はPythonプログラミングにおいて非常に重要な構文ですので、この記事の内容を理解し、様々な場面で活用できるよう練習を重ねてください。

関連記事