В программировании итератор и итератор и итерации – это довольно знакомые слова, и можно иметь много путаницы, объясняющей и понимая эти довольно распространенные темы. Давайте демистифицируем их один за другим.
Определение естественного языка Итерабильный это способен повторять или итерацию Анкет Однако питоническое определение Итератор это объект, который реализует эти два магических метода: __iter__
и __getItem__
Анкет
__iter__
Метод итерабильный возвращает Итератор , что мы увидим дальше, и аналогично __getItem__
Метод берет аргумент или ключевой элемент из его последовательностей, запускающего индекс, и до тех пор, пока индекс больше не будет действительным, а Python не поднимает исключение, называемое Индексерр Анкет __getItem__
Метод используется в основном для поиска на основе индекса по коллекциям.
В Python по умолчанию типы: список
& Строки
есть __iter__
& __getItem__
реализовано и, следовательно, мы можем ссылаться на них как итерационную.
Для более краткого визуального представления давайте предположим, что книжная полка с одной строкой, где есть 7 разных книг.
На этой книжной полке мы можем пройти через каждую книгу одну за другой, мы также можем изменить порядок книг, можем обмениваться местами, поэтому мы можем считать эту книжную полку как объект Анкет Но как читатель, я могу читать только одну книгу за раз. Таким образом, можно ясно видеть, что эта книжная полка можно считать итерационной из того, что мы обсудили до этого момента.
При программировании итератор – это объект, который позволяет нам пройти через итерабируемые объекты. Этот объект итератора помнит, где он находится во время процесса путешествия.
В Python итератор – это объект с __next__
Метод реализован в нем. __next__
Метод возвращает следующее значение при прохождении (перемещении) последовательности итерабильной объекта, начиная с индекса ноль иерного. После каждого вызова __next__
Метод обновляет его состояние, чтобы указывать на следующий объект в иерной последовательности. И когда процесс путешествия завершен, он поднимает Stoperror исключение.
Для визуального представления, давайте предположим, что у вас есть игрушечный лазерный свет, который вы можете использовать, чтобы указать на книгу последовательно, чтобы прочитать их один за другим, во время этого процесса, чтобы вывести первую книгу, которую вы сначала указываете на свой игрушечный лазерный свет на первое Книга на книжной полке вы вынимаете эту книгу, и, делая это, лазерная фокус указывает на следующую книгу в последовательности и так далее, пока не пройдет через них один за другим.
>>> bookshelf = ['The Diary of a young girl', 'Crime and punishment', 'Romeo and Juliet', ...] #7 books >>> flashlight = iter(bookshelf) >>> next(flashlight) The Diary of a young girl >>> next(flashlight) Crime and punishment
В Python, для
петля, карта
и понимание списка автоматически называют это Следующий
метод
Мерриам Вебстер Словарь определяет итерацию как:
- Повторение последовательности компьютерных инструкций указанное количество раз или до тех пор, пока условие не будет выполнено – сравните рекурсию
- Одно выполнение последовательности операций или инструкций в итерации Анкет
Из приведенной выше аналогии с книжной полкой мы можем сказать, что процесс повторения через книгу первую за другим можно назвать итерацией.
При программировании, выполняя итерацию, каждый раз повторяется, что повторяется. Мы используем петли для достижения итерации, которая в основном выполняет инструкцию или последовательность инструкций неоднократно.
Итерабильный : Список, строки и любые объекты, которые реализовали __getItem__
и __iter__
методы
Итератор : Использование iter ()
Функция на итерапии дает итераторный объект, итератор имеет Следующий Метод в нем. Этот итераторный объект помните, где он находится во время итерации
Итерация : Использование для
петля В то время как
петля или даже Понимание списка
. Пожалуйста, оставьте пример в поле для комментариев: D
Наконец, если вы что -то узнали из этой статьи, пожалуйста, поделитесь ею с друзьями.
Вы также можете следовать за мной в LinkedIn и Twitter Анкет
Оригинал: “https://dev.to/geeksambhu/understand-iterator-iteration-and-iterable-in-python-m1j”