zip() 並列イテレーション
最終更新:2026-09-22
zip() 並列イテレーション
zip(*iterables) は複数のイテラブルを「並列に」タプルのイテレータへ組み合わせます(最短で打ち切られます);strict=True の場合は等長であることを要求します。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | 3.10+ |
📝 構文
zip(*iterables, strict=False)
⚙️ 引数
| iterables 必須 | Varargs: multiple iterables combined in parallel. |
|---|---|
| strict 任意 | When True, require equal lengths (Python 3.10+).(デフォルト値:False) |
戻り値:An iterator of tuples pairing same-index elements; stops at the shortest input.
💥 例外
ValueError— Raised when strict=True and lengths differ.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
a 1
b 2
c 3
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qzip() が長さの違う2つのシーケンスに会うとどうなりますか?
A既定では短い方で切り詰め、余った要素は破棄されます。例えば zip('abc', '12') は ('a','1') と ('b','2') しか生成しません。明示的にエラーにしたい場合は zip(a, b, strict=True)(Python 3.10+)を使います。
Qzip(*lst) は何をするもの?
Aアンパックして転置します。zip(*[(1, 'a'), (2, 'b')]) は (1, 2) と ('a', 'b') を生成し、「行」を「列」に変える、行列の転置によく使われます。
Qzip() は何を返しますか?
A遅延の zip イテレータを返します。リストが必要なら list(zip(...)) を使います。引数なしで呼ぶと空のイテレータを返します。
Qzip は一度にいくつのリストを走査できますか?
A任意の数です。for a, b, c in zip(x, y, z): で並行して値を取り出せ、複数のシーケンスを同時走査する標準的な書き方です。