Pythonのfor文の使い方!リスト・辞書・文字列をループ処理する方法
生徒
「Pythonで、同じような処理を何回も繰り返すにはどうすればいいんですか?」
先生
「そういうときはfor文という繰り返し処理を使うと便利です。リストや文字列などを順番に取り出して、何度も同じ処理ができますよ。」
生徒
「for文って、難しそうな印象があるんですが…」
先生
「心配しなくて大丈夫です。今回はリスト・辞書・文字列のループ処理を、やさしく解説していきますね。」
1. Pythonのfor文とは?
for文(ふぉーぶん)とは、リストや文字列などのデータを順番に1つずつ取り出して、同じ処理をくり返すための文です。何回も同じ行を書く代わりに、ループ処理でまとめて書けるのがポイントです。
たとえば、買い物リストにある品物を「りんご→バナナ→みかん」のように順番に表示する、という使い方ができます。
基本の書き方は以下の通りです。
items = ["りんご", "バナナ", "みかん"]
for item in items:
print(item)
りんご
バナナ
みかん
解説:for item in itemsは「itemsの中身を先頭から順に取り出して、取り出したものをitemという名前に入れる」という意味です。print(item)はそのたびに実行されるので、結果としてリストの要素が1行ずつ表示されます。
なお、itemという名前は例なので、fruitなど分かりやすい名前に変えてもOKです。
2. リストをfor文でループする
リストとは、複数のデータをまとめて管理できる入れ物です。カンマで区切って[]で囲んで書きます。たとえば「点数の一覧」「買い物リスト」「ユーザー名の一覧」など、同じ種類のデータを並べて持ちたいときによく使います。
for文では、リストの中身を先頭から順番に1つずつ取り出して処理できます。取り出した値は、forの左側に書いた変数(ここではn)に入ります。
numbers = [10, 20, 30]
for n in numbers:
print(n * 2)
20
40
60
解説:この例では、numbersから10→20→30の順に取り出して、毎回n * 2を表示しています。もしリストの中身が増えても、for文は同じ書き方のままでOKです。
なお、取り出した値をそのまま表示するだけでなく、計算したり、文字を付け足したり、条件に応じて処理を変えたりと、リストとfor文の組み合わせは幅広く使えます。
3. range()関数とfor文で繰り返し
range()関数を使うと、「決まった回数だけ同じ処理をくり返す」という書き方ができます。たとえば「5回あいさつする」「3回だけチェックする」など、回数がはっきりしているループ処理で便利です。
まずは、0から始まる基本の例を見てみましょう。
for i in range(5):
print(f"{i}回目の処理です")
0回目の処理です
1回目の処理です
2回目の処理です
3回目の処理です
4回目の処理です
解説:range(5)は「0, 1, 2, 3, 4」という数字を順番に用意してくれます。for文はその数字を1つずつ取り出し、取り出した数字がiに入ります。だから、iの値が変わりながら同じprintが5回実行されます。
「1回目」から表示したい場合は、i + 1のように少し足して調整することもできます。回数を数えたいときに、range()はとても使いやすい仕組みです。
4. 辞書(dict)をfor文でループする
辞書(dictionary、ディクショナリ)とは、「キー」と「値」をセットにしてデータを管理する仕組みです。リストが番号順で管理されるのに対して、辞書は「名前」「年齢」など、意味のある名前(キー)でデータを取り出せるのが特徴です。
たとえば、人の情報を「項目名」と「内容」でまとめたいときに、辞書はとても便利です。
person = {"名前": "田中", "年齢": 25}
for key in person:
print(key, "→", person[key])
名前 → 田中
年齢 → 25
解説:この書き方では、for文で辞書をそのまま回すと、まず「キー」だけが順番に取り出されます。取り出したキーを使って、person[key]のように書くと、対応する値を表示できます。
キーと値をセットで扱いたい場合は、.items()を使うと、より分かりやすく書けます。
for key, value in person.items():
print(f"{key}は{value}です")
名前は田中です
年齢は25です
ポイント:.items()を使うと、「キー」と「値」が同時に取り出されるため、文章として表示したり、条件分岐と組み合わせたりしやすくなります。辞書とfor文は、データの一覧表示やチェック処理でよく使われる組み合わせです。
5. 文字列をfor文で1文字ずつ処理
文字列(string)もfor文で1文字ずつ取り出せます。
word = "Python"
for char in word:
print(char)
P
y
t
h
o
n
日本語も同じように処理できます。
greeting = "こんにちは"
for letter in greeting:
print(letter)
こ
ん
に
ち
は
6. for文のネスト(入れ子)で複雑な処理
for文の中にさらにfor文を入れると、ネスト(入れ子構造)になります。
たとえば、九九の表を作ることができます。
for i in range(1, 4):
for j in range(1, 4):
print(f"{i}×{j}={i*j}")
1×1=1
1×2=2
1×3=3
2×1=2
2×2=4
2×3=6
3×1=3
3×2=6
3×3=9
複雑になりますが、少しずつ練習すれば理解できます。
7. for文はあらゆる繰り返しに使える
Pythonのfor文は、リスト、辞書、文字列、range、タプルなど、さまざまなデータに対応しています。
ループ処理を使えば、同じ処理を短く書けるので、実用性がとても高いです。
「人数分のメッセージを送る」「データをすべてチェックする」「複数のファイル名を順番に表示する」など、いろいろな場面で使えます。
まとめ
Pythonのfor文は、リストや辞書、文字列など多様なデータを順番に処理できる基本構文であり、プログラミングにおける基礎力を養うために欠かせない重要な要素です。今回の記事では、リストをひとつずつ取り出す方法、辞書からキーと値を取り出す方法、文字列を一文字ずつ処理する方法、範囲を指定して繰り返すrange関数の使い方、さらに複数のfor文を組み合わせるネスト構造まで幅広く確認しました。これらの手法は日常的なプログラム作成はもちろん、データ処理、ログ解析、画面表示などさまざまな用途で役立つため、しっかり理解しておくことでPythonの活用範囲が大きく広がっていきます。 リストをループするときには、値を順番に取り出して計算したり表示したりでき、買い物リストや集計処理など実用的な場面にも応用できます。辞書をループする場合は、キーと値を同時に扱えるため、ユーザー情報や設定値などを整理して表示する際に便利です。また、文字列のループ処理では、英字だけでなく日本語の文字も一文字ずつ取り出せるため、文章の分析やテキスト処理など幅広い用途に対応できます。range関数と組み合わせることで、「決まった回数だけ処理する」という明確な制御が可能となり、ループ構造の理解がさらに深まります。 ネストされたfor文では、九九のような組み合わせ処理を自動的に生成でき、複雑なロジックをシンプルに表現できます。多重ループははじめは難しく感じるかもしれませんが、ひとつひとつの動きを理解しながら実際に手を動かしてみることで、次第に構造が見えてきます。Pythonのfor文は柔軟で読みやすい文法を持っており、トレースしやすいのも大きな特徴です。コードを上から順番に追いかけるだけで、どのデータがいつ処理されるのかが直感的に分かるため、学習にも非常に向いています。 実務では、ファイルの一覧を順番に読み込んだり、データの検証を進めたり、メッセージを複数人分生成したりと、繰り返し処理の活躍場面は数え切れないほどあります。Pythonのfor文は、そのどれにも対応できる柔軟さを持っているため、日常的に触れるデータ処理のほとんどに役立つと言っても過言ではありません。今回の記事で扱った基礎を理解することで、より高度なデータ分析や機械学習に進む際にも役立ち、他のプログラミング言語を学ぶ際の土台にもなります。ぜひ実際にコードを書きながら挙動を確認し、反復処理の感覚をつかんでいってください。
items = ["りんご", "バナナ", "みかん"]
for item in items:
print(item)
person = {"名前": "佐藤", "年齢": 30}
for key, value in person.items():
print(f"{key}:{value}")
for i in range(1, 4):
for j in range(1, 4):
print(f"{i}×{j}={i*j}")
生徒
「今日はfor文の使い方がいろいろ分かりました!リストも辞書も文字列も全部同じようにループできるのが便利ですね。」
先生
「そのとおり。Pythonのfor文はとても柔軟だから、データの種類に関係なく繰り返し処理が書けるんだよ。」
生徒
「rangeを使うと回数で繰り返せるのも便利でした。九九の例も分かりやすかったです。」
先生
「ネストは少し複雑だけれど、慣れてくるといろいろ応用できるよ。データを組み合わせる処理にもよく使われるんだ。」
生徒
「辞書のitemsを使うとキーと値を同時に扱えるのも便利ですね。情報を整えるのが楽になりそうです。」
先生
「その発想はとても良いね。今日学んだfor文の仕組みは、日常のデータ処理でも必ず役に立つからしっかり身につけておこう。」