English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Python

Управление потоком Python

Функции Python

Типы данных Python

Файловые операции Python

Объекты и классы Python

Даты и время Python

Продвинутые знания Python

Руководство Python

Метод использования и примеры функции Python iter()

Внутренние функции Python

Функция iter() в Python возвращает итератор для данного объекта.

функция iter() создает объект, который можно итерировать по одному элементу за раз.

при использовании сцикл for,whileциклы и т.д.циклЭти объекты очень полезны при связке.

синтаксис функции iter() выглядит следующим образом:

iter(object, sentinel)

параметры функции iter()

функция iter() имеет два параметра:

  • объект-объекты, которые необходимо создать итератор (например,множество,парыи т.д.)

  • sentinel (необязателен) -специальное значение для обозначения конца последовательности

Возврат функции iter()

  • Функция iter() возвращает объект итератора для данного объекта.

  • Если объект пользователя не реализует __iter__(), __next__() или __getitem__(),则会引发 исключение TypeError.

  • Если предоставлен параметр sentinel, функция iter() будет возвращать итератор до тех пор, пока не будет найден маркерный символ.

Пример 1: работа функции Python 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

Пример 2: Итератор пользовательского объекта

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

Пример 3: iter() с параметром sentinel

with open('mydata.txt') as fp:
    for line in iter(fp.readline, ''):
        processLine(line)

При запуске программы она откроется в режиме чтенияmydata.txtФайл.

Затем, вызов iter(fp.readline, '') в цикле for читает строки из текстового файла до достижения маркера '' (пустой строки).

Рекомендованная литература:Итераторы Python, Внутренние функции Python