freeCodeCamp/guide/russian/python/iterators/index.md

40 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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:
```