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:
の形式を使うと、よりシンプルで読みやすいコードになります。
目的に応じてこれらの方法を使い分けることが、効率的なプログラミングの鍵となります。