Итераторы

Итераторы


Что такое итератор?

Итератор — интерфейс, предоставляющий доступ к элементам коллекции (массива или контейнера) и навигацию по ним. В различных системах итераторы могут иметь разные общепринятые названия. В терминах систем управления базами данных итераторы называются курсорами. В простейшем случае итератором в низкоуровневых языках является указатель.

В чём разница между итератором и генератором?

Эти термины тесно связаны (любой генератор — это итератор), их довольно часто путают, что иногда приводит к недопониманию. Итератор — более общая концепция. Это объект, у которого определены два метода: __next__ и __iter__. С другой стороны, генератор — это итератор. Но не наоборот. Генератор может получаться использованием ключевого слова yield в теле функции.

def squares(start, stop):
    for i in range(start, stop):
        yield i * i
generator = squares(a, b)


Report Page