Возвращает объект итератора.
iter(obj[, sentinel])
-> iterator
obj -- Объект коллекции, поддерживающей итерирование (реализует __iter__()), либо объект, поддерживающий протокол последовательности (реализует __getitem__(), где аргумент целое, начиная с нуля). Если передан другой объект, возбуждается TypeError.

sentinel -- Если этот аргумент предоставлен, то ожидается, что obj содержит объект, поддерживающий вызов. В этом случае, созданный итератор будет вызывать указанный объект (без аргументов) с каждым обращением к своему __next__() и проверять полученное значение на равенство с sentinel. Если полученное значение равно sentinel, возбуждается StopIteration, иначе возвращается полученное значение.

Функция возвращает итератор по объекту, поддерживающему итерирование по его элементам.

Внимание
В зависимости от наличия sentinel, в obj ожидаются различные типы объектов.

Одно из применений sentinel — чтение строк, пока не будет достигнута нужная. Следующий пример считывает файл, пока метод readline() не вернёт пустую строку:

    with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
# Делаем что-либо с line.

Пользовательский тип, определивший __call__():

    class MyIterable(object):

def __init__(self):
self.index = 0
self.items = [1, 2, 3, 4]

def __call__(self):
value = self.items[self.index]
self.index += 1
return value


iterator = iter(MyIterable(), 3)

print(next(iterator)) # 1
print(next(iterator)) # 2
print(next(iterator)) # StopIteration

На заметку
Для получения следующего элемента из объекта итератора вручную можно воспользоваться функцией next. Автоматический проход по элементам возможен при использовании цикла for in.

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.