English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция iter() в Python возвращает итератор для данного объекта.
функция iter() создает объект, который можно итерировать по одному элементу за раз.
при использовании сцикл for,whileциклы и т.д.циклЭти объекты очень полезны при связке.
синтаксис функции iter() выглядит следующим образом:
iter(object, sentinel)
функция iter() имеет два параметра:
объект-объекты, которые необходимо создать итератор (например,множество,парыи т.д.)
sentinel (необязателен) -специальное значение для обозначения конца последовательности
Функция iter() возвращает объект итератора для данного объекта.
Если объект пользователя не реализует __iter__(), __next__() или __getitem__(),则会引发 исключение TypeError.
Если предоставлен параметр sentinel, функция iter() будет возвращать итератор до тех пор, пока не будет найден маркерный символ.
# список гласных список гласных vowels = ['a', 'e', 'i', 'o', 'u'] vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'
Результат вывода
a e i o u
class PrintNumber: def __init__(self, max): self.max = max def __iter__(self): self.num = 0 return self def __next__(self): if(self.num >= self.max): raise StopIteration self.num += 1 return self.num print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # Возникает StopIteration print(next(print_num_iter))
Результат вывода
1 2 3 StopIteration
with open('mydata.txt') as fp: for line in iter(fp.readline, ''): processLine(line)
При запуске программы она откроется в режиме чтенияmydata.txtФайл.
Затем, вызов iter(fp.readline, '') в цикле for читает строки из текстового файла до достижения маркера '' (пустой строки).
Рекомендованная литература:Итераторы Python, Внутренние функции Python