40 lines
2.7 KiB
Markdown
40 lines
2.7 KiB
Markdown
---
|
||
title: Python Iterators
|
||
localeTitle: Итераторы на Python
|
||
---
|
||
Python поддерживает концепцию итерации по контейнерам. Это реализовано с использованием двух различных методов; они используются, чтобы позволить пользовательским классам поддерживать итерацию.
|
||
|
||
[Документы Python - Типы итераторов](https://docs.python.org/3/library/stdtypes.html#iterator-types)
|
||
|
||
Итерация - это процесс программного повторения шага определенное количество раз. Программист может использовать итерацию для выполнения одной и той же операции для каждого элемента в коллекции данных, например, для распечатки каждого элемента в списке.
|
||
|
||
* Объекты могут реализовать `__iter__()` который возвращает объект итератора для поддержки итерации.
|
||
|
||
* Объекты Iterator должны реализовывать:
|
||
|
||
* `__iter__()` : возвращает объект итератора.
|
||
|
||
* `__next__()` : возвращает следующий объект контейнера.
|
||
|
||
|
||
итератор _object = 'abc'. **iter** () print (_ объект _итератора_ ) print (id ( _объект_ итератора _)) print (id (iterator_ object. **iter** ())) # Возвращает сам итератор. print (iterator _object. **next** ()) # Возвращает 1-й объект и продвигает итератор. print (iterator_ object. **next** ()) # Возвращает 2-й объект и продвигает итератор. print (iterator _object. **next** ()) # Возвращает 3-й объект и продвигает итератор. print (_ объект _итератора_ **next** ()) # вызывает исключение StopIteration.
|
||
|
||
|
||
Выход :
|
||
```
|
||
<str_iterator object at 0x102e196a0>
|
||
4343305888
|
||
4343305888
|
||
a
|
||
b
|
||
c
|
||
---------------------------------------------------------------------------
|
||
StopIteration Traceback (most recent call last)
|
||
<ipython-input-1-d466eea8c1b0> in <module>()
|
||
6 print(iterator_object.__next__()) # Returns 2nd object and advances iterator.
|
||
7 print(iterator_object.__next__()) # Returns 3rd object and advances iterator.
|
||
----> 8 print(iterator_object.__next__()) # Raises StopIteration Exception.
|
||
|
||
StopIteration:
|
||
|
||
``` |