- 612 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 12:48:37 ID:BKihMO2y.net]
- foo = [1,2,3]
foo_iter = iter(foo) next(foo_iter) #=> 1 next(foo_iter) #=> 2 next(foo_iter) #=> 3 next(foo_iter) #=> StopIteration イテレータはnext()が呼ばれたら次の要素を1つ返すオブジェクト 内部でどこまで返したか覚えておく必要があるので状態を記録してるかというと記録してる for x in foo: って書けば iter(foo)して、next()を呼んで、得られた値をxに代入して、loop内の処理へ渡してる ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種 ジェネレータではないイテレータは1つ1つ値を生成するんじゃなく すでに用意されたリストなどから順に値を1つずつ返すもの なので作り置きから注文の都度1つずつ返すのもイテレータ
|

|