Pythonの `for x in y` が隠している真実:イテレータの仕組みを徹底解説
What `for x in y` hides from you – From Scratch Code

Pythonの`for`ループは、リストや文字列、rangeなど様々なオブジェクトを簡単に反復処理できる便利な構文ですが、その裏ではイテレータプロトコルが働いています。本記事では、RustでPythonインタプリタを開発する著者が、`for`ループが実際に行っていること(`iter()`と`next()`の呼び出し、`StopIteration`による終了)を解説します。イテレータとイテラブルの違い、ジェネレータの動作、複数変数へのアンパックなど、具体例を交えてPythonの反復処理の本質に迫ります。
`for x in y` は「yをループする」という意味ではなく、「yに反復処理の方法を尋ねる」という意味です。