Что такое итератор, итерация и итерация? - PullRequest
390 голосов
/ 27 марта 2012

Какое самое основное определение «итерируемого», «итератора» и «итерации» в Python?

Я прочитал несколько определений, но я не могу определить точное значение, поскольку оно все еще не будет

Может кто-нибудь помочь мне с 3 определениями в терминах непрофессионала?

Ответы [ 12 ]

1 голос
/ 28 января 2018

Прежде чем иметь дело с итераторами и итераторами, основным фактором, определяющим итерируемость и итератор, является последовательность

Последовательность: последовательность - это сбор данных

Итерируемая: итерируемые объекты типа последовательности, которыеподдержка метода Iter.

метод Iter: метод Iter принимает последовательность в качестве входных данных и создает объект, известный как итератор

итератор: итератор - это объект, вызывающий следующий метод и проходящий через последовательность. При вызове следующего метода он возвращает объект, который он прошел в данный момент.

пример:

x=[1,2,3,4]

x - это последовательность, состоящая из набора данных

y=iter(x)

При вызове iter (x) он возвращает итератор, только если у объекта x есть метод iter, в противном случае он вызывает исключение. Если он возвращает итератор, то y присваивается следующим образом:

y=[1,2,3,4]

Поскольку y является итераторомследовательно, он поддерживает метод next ()

При вызове метода next он возвращает отдельные элементы списка по одному.

После возврата последнего элемента последовательности, если мы снова вызываем следующий метод, возникает ошибка StopIteration

пример:

>>> y.next()
1
>>> y.next()
2
>>> y.next()
3
>>> y.next()
4
>>> y.next()
StopIteration
0 голосов
/ 15 июля 2014

В Python все является объектом. Когда говорят, что объект является итеративным, это означает, что вы можете проходить (то есть повторять) объект как коллекцию.

Например, массивы являются итеративными. Вы можете пройти по ним с помощью цикла for и перейти от индекса 0 к индексу n, где n - длина объекта массива минус 1.

Словари (пары ключ / значение, также называемые ассоциативными массивами) также являются итеративными. Вы можете пройти через их ключи.

Очевидно, что объекты, которые не являются коллекциями, не являются итеративными. Например, объект bool имеет только одно значение: True или False. Он не повторяется (не имеет смысла, что это повторяемый объект).

Читать дальше. http://www.lepus.org.uk/ref/companion/Iterator.xml

...