Python:Библиотека/3/Модули/builtins/iter(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Строка 4: Строка 4:
==iter()==
==iter()==


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
iter(obj)
iter(obj)
iter(func, sentinel)
iter(func, sentinel)
Строка 13: Строка 13:
Если ''obj'' - последовательность, не реализующая ''__iter__()'', то вызов ''iter(obj)'' эквивалентен:
Если ''obj'' - последовательность, не реализующая ''__iter__()'', то вызов ''iter(obj)'' эквивалентен:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
def iter_seq(obj):
def iter_seq(obj):
     i = 0
     i = 0
Строка 24: Строка 24:
Если функция вызывается с двумя аргументами, то вызов эквивалентен:
Если функция вызывается с двумя аргументами, то вызов эквивалентен:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
def iter_sen(func, sentinel):
def iter_sen(func, sentinel):
     while True:
     while True:
Строка 34: Строка 34:
==Параметры==
==Параметры==


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">


</syntaxhighlight>
</syntaxhighlight>
Строка 42: Строка 42:
===№1===
===№1===


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">


</syntaxhighlight>
</syntaxhighlight>
Строка 48: Строка 48:
Вывод:
Вывод:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">


</syntaxhighlight>
</syntaxhighlight>
Строка 54: Строка 54:
===№2===
===№2===


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">


</syntaxhighlight>
</syntaxhighlight>
Строка 60: Строка 60:
Вывод:
Вывод:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">


</syntaxhighlight>
</syntaxhighlight>

Текущая версия от 19:52, 23 мая 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


iter()

iter(obj)
iter(func, sentinel)

Создаёт и возвращает итератор, который можно передавать функции next() для получения одного элемента за раз.

Если obj - последовательность, не реализующая __iter__(), то вызов iter(obj) эквивалентен:

def iter_seq(obj):
    i = 0
    while True:
        try: yield obj[i]
        except IndexError: raise StopIteartion
        i += 1

Если функция вызывается с двумя аргументами, то вызов эквивалентен:

def iter_sen(func, sentinel):
    while True:
        item = func()
        if item == sentinel: raise StopIteration
        yield item

Параметры

Пример

№1

Вывод:

№2

Вывод:

См.также

Внешние ссылки