Pythonのfor文とは?
Pythonにおけるfor文は、プログラミングにおいて最も頻繁に使用される、繰り返し処理(ループ処理)の1つです。for文を活用すると、同じ処理を複数の要素に対して繰り返し適用できます。
特にPythonのfor文は他のプログラミング言語のfor文と少し異なり、「イテラブル」と呼ばれるオブジェクト(リスト、タプル、文字列など)の要素を1つずつ取り出して処理ができます。
これにより、大量のデータを効率的に処理したり、同じ処理を何度も繰り返したりすることが可能です。
例えば、100個の数字を順番に表示したい場合、for文を使えば簡単に実現できます。また、ファイルの各行を読み込んで処理したり、Webサイトから取得したデータを一つずつ処理したりする際にも活用できます。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
Pythonのfor文の特徴
Pythonのfor文の特徴は、以下の点にあります。
- シンプルで読みやすい構文
- 幅広いデータ型に対応している
リストや辞書だけでなく、自作のクラスでも条件を満たせばfor文での処理が可能です。非常に柔軟性が高いといってよいでしょう。
その使い勝手の良さから、for文は初心者にとって、最初に覚えるべき重要な制御構文の1つです。
Pythonの基本構文
Pythonのfor文の基本構文は、非常にシンプルです。「for 変数 in イテラブル:」という形式で記述します。
イテラブルから取り出した各要素が変数に代入され、インデントされたブロック内の処理が実行されます。
例えば、リストの各要素を出力するには以下のように書きます。
イヌ
ネコ
ウサギ
また、数値の範囲を繰り返す場合は、「range()関数」を使います。
0
1
2
このように、非常にシンプルな形の構文です。range()関数を使ったパターンも覚えておくと便利なので、基本構文と一緒に習得しておくことをオススメします。
Python「for文」の実用例8選
Pythonのfor文は、様々な状況で活用できる非常に便利な構文です。ここからは初心者の方でも理解しやすいように、以下にわけて実際のコード例を使って解説していきます。
- リストの各要素を処理する
- 数値の範囲を繰り返す
- 文字列の各文字を処理する
- 辞書型のデータを繰り返す
- リスト内包表記でfor文を簡潔にする
- ネストしたfor文の使い方
- for文とif文の組み合わせ
- for文とbreak/continueの使い方
それぞれ実際にコードを実行するとどのような結果になるのかも示していますので、ぜひ自分でも試してみてください。
リストの各要素を処理する
リストは、Pythonでよく使用されるデータ構造です。for文を使って各要素に順番にアクセスできます。以下のように記述します。
イヌは素晴らしい動物です
ネコは素晴らしい動物です
キリンは素晴らしい動物です
このように動物のリストを作り、それぞれに同じ処理を適用するのは、for文の基本的な使い方です。同じコードを何度も書く手間が省け、すっきりと整理されたコードになります。
数値の範囲を繰り返す
Pythonのfor文では、「range()関数」を使うと、特定の範囲の数値を簡単に生成できます。配列のインデックスにアクセスしたり、特定回数の繰り返しを行いたい場合に重宝するでしょう。今回も動物を使って、リストの各要素に順番をつけて表示する方法を紹介します。
1番目: パンダ
2番目: コアラ
3番目: ペンギン
range()関数は本来、引数の数によって、指定できる内容と返される結果が異なります。ただし上の例のようにfor文で使う場合は不要です。使用する際は気を付けましょう。
文字列の各文字を処理する
Pythonでは文字列もイテラブルなので、for文で各文字を順に処理できます。例えば動物の名前を一文字ずつ縦に表示したり、特定の文字をカウントしたりといった操作が可能です。以下の例文を見てみましょう。
キ
リ
ン
上記からもわかるように、Pythonでは日本語の文字も問題なく扱えます。文字列の処理もしやすいでしょう。
辞書型のデータを繰り返す
辞書型データは、キーと値のペアを持つデータ構造になっています。for文と組み合わせることで、それぞれのキーと値、もしくはその両方に対して処理ができます。動物とその特徴を関連付けて表示する例を見てみましょう。
ライオンの特徴はたてがみです
ゾウの特徴は長い鼻です
注意したいのが、for文で取り出す際は、キーと値を別々に取り出す必要がある点です。意識してコードを書くようにしましょう。
リスト内包表記でfor文を簡潔に
リスト内包表記は、Pythonの強力な機能の1つです。活用すると、for文を一行で記述できます。新しいリストを作成しながら、各要素に処理を適用したい場合に便利です。ここでは、動物名のリストから特定の処理を適用した新しいリストを生成する際の例を見てみましょう。
['イヌ', 'ネコ', 'ウサギ']
[2, 2, 3]
リスト内包表記を活用すると、要素を処理するだけでなく、条件に応じて要素を抽出することも可能です。活用の幅が広いので、覚えておくと良いでしょう。
ネストしたfor文の使い方
Pythonでは、複数のfor文を入れ子(ネスト)にすることで、多次元データや複数のリストを組み合わせた処理が可能になります。どのようなコードになるのか、動物園の各エリアとそこにいる動物の情報を例にして見ていきましょう。
森林エリアの動物:
- キツネ
- リス
草原エリアの動物:
- ライオン
- シマウマ
各動物を森林と草原にわけ、整理して表示する形です。二重のループを理解すると、より複雑なデータ処理ができるようになるでしょう。
for文とif文の組み合わせ
Pythonでは、for文とif文を組み合わせると、条件に合った要素だけを処理できます。特定の条件でフィルタリングしたり、データを選別したりする場合に効果的です。特定の文字を含む動物名だけを抽出してみましょう。
「カ」を含む動物: ['カンガルー']
if文を使ってフィルタリングをするイメージです。for文とif文は、どちらも簡単な処理を短く書くために重要な文法なので、マスターしておくことをオススメします。
for文とbreak/continueの使い方
Pythonのfor文では、break/continueも重要です。break文はループを即座に終了し、continueは現在の繰り返しをスキップして次のループに進みます。
両者を使うことで、特定の条件でループの制御が可能になります。以下の例文を使って、動物園の見学ツアーのシミュレーションをしてみましょう。
イヌを見学しました
ネコを見学しました
ライオンは危険なのでスキップ
トラがいるので終了
ライオンをスキップし、トラがいると終了する形です。if文などで条件をつけ、breakを使って処理を止めるケースは多々あります。continueと併せて覚えておくことをオススメします。
まとめ
Pythonのfor文は、リスト・文字列・辞書など、さまざまなデータ型に対して繰り返し処理を行える非常に便利な構文です。range()関数と組み合わせたり、リスト内包表記を使ったりすることで、コードをより簡潔に書けます。
さらに、if文やbreak/continueと組み合わせれば、条件に応じた柔軟な処理も可能です。ネストしたfor文を使えば、多次元のデータも効率的に処理できるでしょう。
Pythonのfor文をマスターすれば、データ処理の効率が飛躍的に向上します。繰り返し処理は多くのプログラミングタスクの基礎となる重要な概念です。初心者の方はこの記事で紹介した基本から少しずつ練習して、自分のプログラミングスキルを高めていってください。