【Python】知っておくと役立つfor文の使い方
for文は繰り返し処理を行う上で最も基本的な構文です。
リストやタプル、文字列などのデータ集合を操作する際に欠かせません。Pythonを使ったプログラミングをするなら、
必ずfor文を使うことになるでしょう。
しかし、for文にはいくつかの使い方があり、
状況に応じて使い分ける必要があります。
例えば、
複数のリストからまとめて要素を取り出したい時、
要素とインデックス番号の両方が必要な時、
など、それぞれにふさわしいfor文の形があるのです。
この記事では、Pythonのfor文について、
書き方のバリエーションを実例とともにわかりやすく解説していきます。
プログラミングスキルがあがれば、作業がスピードアップし、プログラムの品質も向上します。
ぜひこの機会に、for文の活用力を高めていきましょう。
基本的なfor文
for 変数 in obj:
処理を記述
(例)fruitsという果物のリストがあった場合:
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
print(fruit)
この場合、以下の出力が得られます。
りんご
みかん
ぶどう
zip関数を使ったfor文
for 変数1, 変数2, ... in zip(obj1, obj2, ...):
処理を記述
(例)番号と対応する果物のリストがあった場合:
numbers = [1, 2, 3]
fruits = ["りんご", "みかん", "ぶどう"]
for num, fruit in zip(numbers, fruits):
print(num, fruit)
出力は以下のようになります。
1 りんご
2 みかん
3 ぶどう
enumerate関数を使ったfor文
for index, 要素 in enumerate(リストやタプル):
処理を記述
(例)fruitsという果物のリストがあった場合:
fruits = ["りんご", "みかん", "ぶどう"]
for i, fruit in enumerate(fruits):
print(i, fruit)
出力:
0 りんご
1 みかん
2 ぶどう
リスト内包表記
[処理 for 変数 in リスト]
(例)整数のリストから偶数のみを取り出したリストを作る場合:
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = [n for n in nums if n % 2 == 0]
print(even_nums)
出力:
[2, 4, 6, 8, 10]
内包表記を少しレベルアップ
内包表記は、集合や辞書でも使えます。
集合内包表記
[ ]を{ }に変えると、集合値を返します。 (重複しない値)
nums = [1, 2, 3, 1, 2, 4]
sets = {n for n in nums}
print(sets)
出力:
{1, 2, 3, 4}
辞書内包表記
keyとvalueをコロン(:)でつなぐと辞書で返します
nums = [1, 2, 3, 1, 2, 4]
dic = {n : n*2 for n in nums}
print(dic)
出力:
{1: 2, 2: 4, 3: 6, 4: 8}
ジェネレーター式
[ ]を( )で囲むとジェネレーター式に変わります。
gen = (i+1 for i in range(5))
print(gen)
出力:
<generator object <genexpr> at 0x7b749d227d10>
さいごに
このように、for文にはいくつかの書き方があり、
状況に応じて使い分ける必要があります。
コードの中でfor文が出てきたら、
どのタイプのfor文なのか確認し、
その意味を理解することが大切です。
実例を交えて説明しましたので、ぜひ練習を重ねて習熟を深めてください。
この記事が気に入ったらサポートをしてみませんか?