1. はじめに|for文がもっと便利になる関数を紹介!
Pythonを使っていると、繰り返し処理(ループ)をする場面ってたくさん出てきますよね。たとえばリストの中身を1つずつ取り出して表示したり、何かの処理を何回もくり返したり……そんなときに活躍するのがfor文です。
でも、for文をたくさん使っていると、こんなことを思ったことはありませんか?
- 「このループ、あとどれくらいで終わるんだろう?」
- 「リストが2つあるんだけど、どうやって同時に回そう?」
- 「今何番目の要素を処理してるんだっけ……?」
実は、こういった「ちょっと不便かも?」を簡単に解決してくれる関数がPythonにはちゃんと用意されています!
この記事では、そんな便利な関数たち――
tqdm(ループの進み具合を表示)zip(複数のリストをまとめてループ)enumerate(インデックス付きでループ)
この3つを、Python初心者にもわかるようにやさしく解説していきます。
for文にちょっとプラスするだけで、コードがもっと分かりやすく・使いやすくなりますよ!
それでは、さっそくひとつずつ見ていきましょう!
2. tqdm|処理の進捗が見えるプログレスバー
for文を使って、たくさんのデータを処理しているとき、「あとどれくらいで終わるんだろう?」って思ったことありませんか?
そんなときに便利なのが、**tqdm(ティー・キュー・ディー・エム)**というライブラリです。
✅ tqdmってなに?
tqdmは、ループの進み具合(進捗)をバーで表示してくれるツールです。
ループ処理に「あと〇%で終わるよ〜!」と視覚的に教えてくれるので、とっても安心感があります。
✅ インストールと使い方
tqdmはPythonに最初から入っているわけではないので、最初にインストールが必要です。
ターミナル(またはコマンドプロンプト)でこのコマンドを実行してください:
pip install tqdm
次に、Pythonのコードでtqdmを読み込むにはこうします:
from tqdm import tqdm
使い方はとっても簡単で、for文の中で「繰り返したいリストなど」をtqdm()で囲むだけ!
from tqdm import tqdm
import time
for i in tqdm(range(10)):
time.sleep(0.5) # ちょっと時間のかかる処理をイメージ
実行すると、ターミナル上に「█」が伸びていくプログレスバーが出てきます!
✅ どんな情報が見られるの?
tqdmを使うと、以下のような情報が一目でわかります:
- 現在の進み具合(%表示)
- 終わった回数 / 全体の回数
- 経過時間・残り時間(予想)
「まだ半分か〜」「あと10秒で終わる!」など、作業の見通しが立つのでとても便利です。
✅ tqdmのここがすごい!
- 大量のデータ処理でも安心感あり!
→ どこまで終わったか分かるので、ストレスが減ります。 - 処理が遅い時に気づける!
→ 進みが遅いと感じたら、コードを見直すチャンス! - Jupyter Notebookでも使える!
→from tqdm.notebook import tqdmとすれば、ノートブックにも対応。
3. zip|複数のリストを同時にループ処理
Pythonでfor文を使っていると、**2つのリストを同時に扱いたい!**ということがあります。
たとえば…
名前リスト = ["太郎", "花子", "次郎"]
点数リスト = [80, 90, 75]
この2つのリストを同じ順番で1人ずつ表示したいとき、どうすればいいでしょう?
ここで登場するのが、便利な関数 zip() です!
✅ zipってなに?
zip()は、複数のリストや繰り返しオブジェクトを1つずつまとめてくれる関数です。
使い方はとてもシンプル!
for 名前, 点数 in zip(名前リスト, 点数リスト):
print(f"{名前}さんの点数は{点数}点です")
これを実行すると、こんなふうに出力されます:
太郎さんの点数は80点です
花子さんの点数は90点です
次郎さんの点数は75点です
1つ目のリストの1番目と、2つ目のリストの1番目がセットで処理される感じですね。
✅ zipのポイントまとめ
- 複数のリストやタプルを「ペア」にして同時に処理できる
- 3つ以上のリストも組み合わせられる!(例:
zip(A, B, C)) - リストの中身を対応づけて処理したいときにピッタリ!
✅ 注意点:リストの長さが違うと?
zip()は、一番短いリストに合わせて止まるようになっています。
A = [1, 2, 3]
B = ["a", "b"]
for x, y in zip(A, B):
print(x, y)
このコードでは、(1, "a") と (2, "b") までしか表示されません。
**3と”c”**のようなペアが存在しないので、そこまででループが終わります。

zipは、データを組み合わせて処理したいときの定番です。
データの「セット」を扱う感覚で覚えておくと、後でとっても役に立ちますよ!
4. enumerate|インデックス付きで繰り返す
Pythonのfor文でリストを繰り返すとき、「この要素って何番目なんだろう?」と思ったことはありませんか?
そんなときに使えるのが、**enumerate()(エニュメレート)**という関数です。
✅ enumerateってなに?
enumerate()は、リストなどの繰り返しオブジェクトに番号(インデックス)を自動で付けてくれる関数です。
ふつうのfor文では、こう書きますよね:
果物リスト = ["りんご", "バナナ", "みかん"]
for 果物 in 果物リスト:
print(果物)
でも「何番目か」も一緒に表示したいなら、enumerate()を使うととっても簡単!
for i, 果物 in enumerate(果物リスト):
print(f"{i}番目の果物は{果物}です")
実行結果:
0番目の果物はりんごです
1番目の果物はバナナです
2番目の果物はみかんです
番号(インデックス)と一緒に要素が出てきます!
✅ start引数で番号を1から始める
Pythonでは番号(インデックス)は0からスタートするのが基本ですが、「1番目、2番目…」のように表示したいときもありますよね。
そんなときは、start=1をつけるだけ!
for i, 果物 in enumerate(果物リスト, start=1):
print(f"{i}番目の果物は{果物}です")
これで出力はこうなります:
1番目の果物はりんごです
2番目の果物はバナナです
3番目の果物はみかんです
✅ enumerateの活用シーン
- データに順位をつけたいとき
- ループ処理で**「何件目か」を表示したいとき**
- インデックス番号をもとに条件分岐したいとき(たとえば、3番目だけ特別な処理をする など)
enumerateを使えば、わざわざrange(len(リスト))のような書き方をしなくても、番号と要素のペアをスマートに扱えます。
Pythonで繰り返し処理をたくさん書く人にとって、知っておくと必ず役立つ関数ですよ!
5. まとめ|for文 × 便利関数でコードの質が上がる!
この記事では、Pythonのfor文と一緒に使うととっても便利な3つの関数をご紹介しました。
- ✅
tqdm:ループの進捗をプログレスバーで見える化! - ✅
zip:複数のリストをペアにして同時にループ! - ✅
enumerate:要素とその番号(インデックス)をセットでループ!
どれも書き方はかんたんなのに、コードの読みやすさ・使いやすさ・効率が一気にアップするすぐれものです。
「Pythonのコードって読みにくいな…」
「for文ってもっと賢く使えないかな?」
そんなときは、ぜひ今回紹介した関数たちを使ってみてください。
少し工夫するだけで、見やすくてバグが出にくいコードが書けるようになりますよ!
あわせて読みたい
for文と便利関数をマスターしたら、次はこちらもチェック!
- 🔗 Pythonの基本構文をやさしく解説|改行・インデント・エラー対応まで初心者向けに丁寧に紹介
基本をおさらいして、読みやすいコードを目指そう! - 🔗 Pythonでできる自動化10選|初心者向けにやさしく解説
for文を活かして、毎日の作業を自動化しよう! - 🔗 Python初心者がやりがちな変数名のミス5選|NameErrorを防ぐコツ
よくあるミスを知って、エラーの少ないコードに!
よくある質問(Q&A)
- QtqdmはJupyter Notebookでも使えますか?
- A
はい、使えます!
Jupyter Notebookの場合は、次のように書くときれいに表示されます:from tqdm.notebook import tqdm
- Qzipでリストの長さが違うとどうなりますか?
- A
一番短いリストに合わせて、ループが途中で終わります。
たとえば、3つと2つのリストをzipした場合、2つ目のリストに合わせて2回だけループします。
- Qenumerateでインデックスを1から始めたいんだけど?
- A
できます!次のように
start=1を指定すればOKです:for i, val in enumerate(リスト, start=1):
print(i, val)







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。