【完全ガイド】Python for文(range・zip・enumerate)

【完全ガイド】Python for文(range・zip・enumerate)

当ページのリンクには広告が含まれています。

記事の文字数:2270

Pythonのfor文は、繰り返し処理を行うための基本構文です。本記事では基本から応用まで実装例を用いてfor文を解説します。range(),enumerate(),zip()関数の活用方法や内包表記での実装、breakやcontinueによるループ制御など様々な方法を紹介します。


スポンサーリンク

Pythonのfor文は、繰り返し処理を簡潔に書ける基本的な構文です。シーケンス(リスト、タプル、文字列など)やイテラブルオブジェクトをループ処理することができます。複数のデータを一括で処理したり、条件によって分岐させたりと、日常的なプログラミングに欠かせない仕組みです。

本記事では、for文の基本的な使い方から応用例までを詳しく解説します。Pythonのforループの基本的な使い方から、実用的な活用例、さらには初心者がつまずきやすいポイントまでを丁寧に解説します。初心者から上級者まで役立つ内容になっているかと思いますので、是非参考にしてください。

for文の動作フロー

1
イテラブルから
要素を取得
2
変数に
代入
3
処理を
実行
4
次の要素へ
or 終了

【Python】for文の基本的な使い方

📋
基本的な使い方

リスト、文字列、辞書などの基本的なループ処理

for item in iterable: # 処理 print(item)

Pythonのforループは、任意の「イテラブル(繰り返し可能なオブジェクト)」を順に処理するために使われます。イテラブルには、リスト、タプル、文字列、辞書、集合、rangeオブジェクトなどが含まれます。

for文の構文
for 変数 in イテラブル:
処理

この基本形を理解しておくことで、あらゆるデータ構造に対して反復処理を行う際の出発点となります。 Pythonのfor文は、リストや文字列の各要素を順番に処理するために使用されます。

for文でリストの各要素を出力

以下のコードでは、numbersリストの各要素が順番にnumに代入され、print文で出力されます。

for-ex.py
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num) # 各要素が順番に出力される
実行結果
$ Python for-ex.py
1
2
3
4
5

for文で辞書の各要素を出力

辞書をループ処理する際には、キーと値のペアを取り出すitems()メソッドを活用します。

for-ex.py
person = {'name': 'Alice', 'age': 30}
for key, value in person.items():
print(f"{key}: {value}")
実行結果
$ Python for-ex.py
name: Alice
age: 30

また、キーだけを扱いたいときはkeys()、値だけを扱いたいときはvalues()を使うとよいでしょう。

for文で文字列の各文字を出力

以下のコードでは、word文字列の各文字が1文字ずつ出力されます。

for-ex.py
word = "Python"
for char in word:
print(char) # 文字列の各文字が1文字ずつ出力される
実行結果
$ Python for-ex.py
P
y
t
h
o
n

【Python】for文の応用的な使い方

🚀
応用的な使い方

enumerate(), zip(), リスト内包表記

# enumerate()でインデックス付き for i, item in enumerate(list): print(f"{i}: {item}")

range()でfor文を一定の回数繰り返す

range()関数を使うと、一定の回数繰り返し処理を行うことができます。

基本構文

  • パターン1:range(終了)の形式で指定する
    • 省略した開始は0、ステップは1となる
  • パターン2:range(開始, 終了)の形式で指定する
    • 省略したステップは1となる
  • パターン3:range(開始, 終了, ステップ)の形式で指定する

【パターン1実装例】range()で0から4までの数値を出力

rangeに終了(5)を指定すると0から4までループ処理します。

for-ex.py
for i in range(5):
print(i)

0, 1, 2, 3, 4が順番に出力されます。

実行結果
$ Python for-ex.py
0
1
2
3
4

【パターン2実装例】range()で6から10までの数値を出力

rangeに開始(6)終了(11)を指定すると6から10までループ処理します。

for-ex.py
for i in range(6, 11):
print(i)

6, 7, 8, 9, 10が順番に出力されます。

実行結果
$ Python for-ex.py
6
7
8
9
10

【パターン3実装例】range()で1から10までの偶数を出力

rangeに開始(2)終了(11)ステップ(2)を指定して柔軟にループ処理できます。

for-ex.py
for i in range(2, 11, 2):
print(i) # 2, 4, 6, 8, 10 が順番に出力される
実行結果
$ Python for-ex.py
2
4
6
8
10

上記のrange(2, 11, 2)は、range(開始, 終了, ステップ)の形式で指定されており、以下のように動作します。

  • 2: ループの開始値(2から始まる)
  • 11: ループの終了値(11は含まれず、10まで処理される)
  • 2: ステップ(2ずつ増加する)

そのため、2, 4, 6, 8, 10という偶数のリストが生成されます。

range()でネストされたfor文(九九の出力)

for文を入れ子(ネスト)にすることで、二重ループを作成できます。 以下は九九の出力をする実装例です。

for-ex.py
for i in range(1, 10):
for j in range(1, 10):
print(f"{i} x {j} = {i * j}") # 各段の掛け算が出力される
実行結果
$ Python for-ex.py
1 x 1 = 1
9 x 9 = 81

enumerate()でインデックス付きループ処理

リストのインデックスと要素を同時に取得するには、enumerate()関数を使います。

for-ex.py
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}") # インデックスと要素が同時に出力される
実行結果
$ Python for-ex.py
0: apple
1: banana
2: cherry

zip()で複数リストをループする

複数のリストを同時にループ処理するには、zip()関数を使います。

for-ex.py
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old.") # 各要素が対応する形で出力される
実行結果
Python for-ex.py
Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.

リスト内包表記で簡潔にリストを作成

リスト内包表記を使うと、簡潔にリストを作成できます。

0から9までの平方数のリストを作成

for-ex.py
squares = [x ** 2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
実行結果
Python for-ex.py
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

breakとcontinueでループ制御

🎮
ループ制御

break, continue, else文でループを制御

for i in range(10): if i == 5: break # ループを終了 print(i)

breakとcontinueでループ処理を制御できます。

  • break: ループを途中で終了する
  • continue: 現在のループの処理をスキップし、次のイテレーションへ進む

5が見つかったらループを終了

for-ex.py
for i in range(10):
if i == 5:
break
print(i) # 0, 1, 2, 3, 4 が出力された後、ループが終了する
実行結果
Python for-ex.py
0
1
2
3
4

偶数のみを出力

for-ex.py
for i in range(10):
if i % 2 == 1:
continue
print(i) # 0, 2, 4, 6, 8 が出力される
実行結果
$ Python for-ex.py
0
2
4
6
8

else付きのfor文

for文にはelseを付けることができ、ループが正常終了したときに実行されます。

for-ex.py
for i in range(3):
print(i)
else:
print("ループが正常終了しました") # 0, 1, 2 が出力された後に実行される
実行結果
$ Python for-ex.py
0
1
2
ループが正常終了しました

for文使い方まとめ

💡 Tips & Tricks

効率的なコーディングのための便利なテクニック

💡 for文を使いこなすポイント

適切なイテラブルの選択
処理内容に応じてリスト、辞書、range()を使い分ける
パフォーマンスの考慮
大きなデータセットではジェネレータを活用
可読性の向上
変数名は処理内容がわかるように命名
エラーハンドリング
例外処理を適切に組み込む

Pythonのfor文は、リストや文字列の処理、繰り返し回数の制御、複数のリストの同時処理など、さまざまな用途に使えます。breakcontinueを適切に活用し、効率的なコードを書きましょう!

また、enumerate()やzip()といった便利な関数を活用することで、より簡潔で読みやすいコードを記述できます。実際の開発で使えるように、ぜひ積極的に試してみてください!


Pythonユーザにお勧めの本

スッキリわかるPython入門 第2版
(スッキリわかる入門シリーズ)

新品価格
¥2,750 から
(2025/5/10 15:50時点)

独習Python

新品価格
¥2,970 から
(2025/5/10 16:00時点)

VTuberサプーが教える!  Python
初心者のコード/プロのコード

新品価格
¥2,803 から
(2025/5/10 16:01時点)

Python1年生 第2版
体験してわかる!会話でまなべる!
プログラミングのしくみ

新品価格
¥1,960 から
(2025/5/10 20:15時点)


以上で本記事の解説を終わります。
よいITライフを!
Scroll to Top