イテラブル(iterable)
反復して取得する構造lst_strg = ['ごはん', 'ライス', '飯'] print('*** 表示') for s in lst_strg: print(s) print('*** おかわり 表示') for s in lst_strg: print(s)
表示イメージ
*** 表示 ごはん ライス 飯 *** おかわり 表示 ごはん ライス 飯
ちょこっとメモ
イテレーション(iteration)
反復して要素を取得すること。- for in文
イテレータ(iterator)
イテラブル可能オブジェクトの中でイテレーションした状態を自動記憶できるオブジェクト- 「next()」組み込み関数、「for~in~」文で要素取得できる。
- 一度取得した要素は、イテレーションした状態を自動記憶している為、取得できない。
lst_strg = ['ごはん', 'ライス', '飯'] iter_strg = iter(lst_strg) #イテレータに変更 print('*** 表示') for s in iter_strg: print(s) print('*** おかわり 表示') for s in iter_strg: print(s)
表示イメージ
*** 表示 ごはん ライス 飯 *** おかわり 表示
ジェネレータ式
- イテレータを構築
- リストの内包表記の[]→()に変更。
- 引数にするときは()省略可能。
- list()、tapul()で変更すると使いやすい。
基本
{ 要素加工 for 要素 in iterable }
iterable =(x**2 for x in range(3)) for ite in iterable: print(ite) print(list(x**2 for x in range(3))) print(tuple(x**2 for x in range(3)))
表示イメージ
0 1 4 [0, 1, 4] (0, 1, 4)