まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Python イテラブル(iterable)・イテレータ(iterator)

イテラブル(iterable)

反復して取得する構造

  • for in文で取得できる
  • イテラブル(反復取得)可能 データ型
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)