iter() Python 組み込み関数

組み込み関数 iter()

iter()
イテレータオブジェクトを返します。
引数を2つ指定した場合は、第一引数の呼び出し可能オブジェクトを繰り返し呼び出して、第二引数に指定した値が返されるとループが終了します。

最初の引数は、2番目の引数の存在に応じて非常に異なって解釈されます。
2番目の引数がない場合、オブジェクトは反復可能プロトコル(iter()メソッド)をサポートするコレクションオブジェクトであるか、シーケンスプロトコル(0から始まる整数引数を持つgetitem()メソッド)をサポートする必要があります。

これらのプロトコルのいずれもサポートしていない場合、TypeErrorが発生します。
2番目の引数sentinelが指定されている場合、オブジェクトは呼び出し可能なオブジェクトである必要があります。

この場合に作成されたイテレータは、_ next _()メソッドの呼び出しごとに引数なしでオブジェクトを呼び出します。
返される値がsentinelと等しい場合は、StopIterationが発生します。
それ以外の場合、値が返されます。

使用例

from functools import partial
with open('mydata.db', 'rb') as f:
    for block in iter(partial(f.read, 64), b''):
        process_block(block)
print(iter([1, 2, 3]))
# 実行結果 <list_iterator object at 0x1079eb410>


# exitを入力すると終了できます。
x = []
for val in iter(input, 'exit'):
    x.append(val)
    
print(x)
実行結果
a
b
c
exit
['a', 'b', 'c']
よかったらシェアしてください!
目次