November 2025
Intermediate to advanced
984 pages
16h 17m
Japanese
プログラム中にコードの繰り返しが見つかるのは、悪い兆候だと思います。プログラムの形態は、解こうとしている問題だけを反映したものであるべきです。問題とは関係のない反復が発生するのは、抽象化が不十分なのだと(少なくとも私は)思っています。何らかのマクロを定義するべきなのに、手作業でマクロを展開しているようなものです。
—— Paul Graham
Lispハッカー、ベンチャーキャピタリスト†1
[†1] ブログ記事『Revenge of the Nerds』(https://fpy.li/17-1)より。
イテレート(反復)はデータ処理にとって不可欠です。ピクセルからヌクレオチドに至るまで、プログラムはさまざまなデータ構造の各要素に繰り返し同じ計算を行います。メモリに収まらないほど大きなデータでは、遅延評価によって必要になるたびに要素を1つずつ取り出す必要がありますが、まさにこれを実現するのがイテレータです。この章では、IteratorパターンがPython言語自体に組み込まれており、プログラマーは自分でこのデザインパターンを実装する必要がないことを示します。
Pythonの標準ライブラリに含まれるすべてのコレクションはイテレート可能です。イテレート可能なオブジェクトはイテレータを提供します。イテレータを使うと以下のことが可能になります。
forループこの章で扱うトピックは以下の通りです。
iter()によるイテレート可能なオブジェクトの扱いRead now
Unlock full access