Pythonのリストは複数の要素をまとめて管理できる便利なデータ構造ですが、その真価は**forループ**と組み合わせることで発揮されます。forループを使うと、リストに含まれる全ての要素に対して、一つずつ順番に同じ処理を適用することができます。
この記事では、forループを使ってリストの要素を処理する基本的な方法を解説します。
forループとrange()関数の基本
まず、forループの基本的な動きをおさらいしましょう。range()関数と組み合わせることで、指定した回数だけ処理を繰り返すことができます。
# 0から3までの数字を順番に表示する
for i in range(4):
print(i)
実行結果:
0
1
2
3
この仕組みを応用して、リストの要素数だけループを回してみましょう。
リストのインデックスを使ったループ処理
リストの各要素にアクセスするには、0から始まるインデックスを使います。リストの要素数をlen()関数で取得し、それをrange()関数に渡すことで、リストの全てのインデックスに対してループ処理を行うことができます。
# 惑星の名前を格納したリスト
planets = ["Mercury", "Venus", "Earth", "Mars"]
# len(planets) は 4 なので、range(4) と同じ意味になる
for i in range(len(planets)):
# iには 0, 1, 2, 3 が順番に入る
# planets[i] で各要素にアクセス
print(f"インデックス {i} の惑星は: {planets[i]} です。")
実行結果:
インデックス 0 の惑星は: Mercury です。
インデックス 1 の惑星は: Venus です。
インデックス 2 の惑星は: Earth です。
インデックス 3 の惑星は: Mars です。
この方法は、要素の値と同時にそのインデックス番号も使いたい場合に非常に便利です。
よりPython的な書き方:直接ループ
リストのインデックス番号が必要なく、単に各要素の値だけを使いたい場合は、もっとシンプルで直感的な書き方があります。リストを直接forループに指定することで、要素を一つずつ取り出すことができます。
planets = ["Mercury", "Venus", "Earth", "Mars"]
# リストから直接要素を取り出してループ
for planet_name in planets:
print(f"惑星の名前: {planet_name}")
実行結果:
惑星の名前: Mercury
惑星の名前: Venus
惑星の名前: Earth
惑星の名前: Mars
このコードは、planetsリストから要素を一つずつ取り出し、それをplanet_nameという変数に代入してprint文を実行します。インデックスを介さずに直接要素を扱えるため、コードが簡潔になり、可読性も高まります。Pythonでは、こちらの書き方がより一般的です。
まとめ
forループとリストを組み合わせることで、大量のデータを効率的に処理できます。
- インデックスが必要な場合は、
for i in range(len(my_list)):の形式を使います。 - 要素の値だけが必要な場合は、
for item in my_list:の形式を使うと、よりシンプルで読みやすいコードになります。
目的に応じてこれらの方法を使い分けることが、効率的なプログラミングの鍵となります。
