イテレータとジェネレータ

MathPython
20 Jan 2026
92 views
6 views 21 Jan 2026
Python では「イテラブル」と「イテレータ」という似た言葉がありますが、これらは明確に異なる概念です。混同しやすいので、しっ...
5 views 22 Jan 2026
Python の `for` 文はシンプルに見えますが、内部ではイテレータプロトコルが動いています。その仕組みを理解すると、Py...
9 views 22 Jan 2026
`iter()` と `next()` は、イテレータを手動で操作するための組み込み関数です。`for` 文では自動的に呼び出さ...
11 views 23 Jan 2026
`StopIteration` は、イテレータが終端に達したことを示す例外です。普段は `for` 文が自動的に処理してくれるた...
5 views 23 Jan 2026
`yield` は、関数から値を返しつつ、その状態を保持する特別なキーワードです。`return` とは異なり、関数の実行を一時...
7 views 23 Jan 2026
ジェネレータ関数は、`yield` キーワードを使って値を順番に生成する関数です。普通の関数と見た目は似ていますが、動作が大きく...
9 views 24 Jan 2026
ジェネレータ式は、リスト内包表記に似た構文で簡潔にジェネレータを作成できる方法です。括弧の種類が異なるだけで、メモリ効率に大きな...
6 views 26 Jan 2026
`yield from` は、別のイテラブルやジェネレータの要素をすべて委譲して `yield` するための構文です。ネストした...
8 views 26 Jan 2026
Python でオブジェクトを `for` 文で使えるようにするには、「イテレータプロトコル」を実装します。具体的には `__i...
5 views 27 Jan 2026
クラスを使ってカスタムイテレータを作ると、複雑な状態管理やカスタムロジックを持つイテレータを実装できます。ここでは実践的な例をい...
6 views 27 Jan 2026
ジェネレータの最大の利点は、メモリ効率の良さです。リストがすべての要素を一度にメモリに展開するのに対し、ジェネレータは必要なとき...
6 views 27 Jan 2026
ジェネレータを使うと、終わりのない「無限シーケンス」を作ることができます。すべての要素をメモリに保持する必要がないため、理論上は...
5 views 27 Jan 2026
`itertools` は、イテレータを効率的に扱うための標準ライブラリです。メモリ効率の良いイテレータを簡単に作成でき、データ...
6 views 27 Jan 2026
ジェネレータは値を `yield` で返すだけでなく、`send()` メソッドを使って外部から値を受け取ることもできます。これ...