Функція next() повертає наступний елемент ітератора. Наприклад:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
marks = [65, 71, 68, 74, 61] # Конвертуємо список в ітератор iterator_marks = iter(marks) # Наступний елемент є першим елементом marks_1 = next(iterator_marks) print(marks_1) # Шукаємо наступний елемент, який є другим елементом marks_2 = next(iterator_marks) print(marks_2) |
Результат:
65
71
Синтаксис функції next()
|
1 |
next(iterator, default) |
Параметри функції next()
Функція next() приймає два параметри:
iterator — ітератор, з якого функція next() витягує наступний елемент;
default (не обов’язково) — це значення повертається, якщо ітератор вичерпано (немає наступного елемента).
Значення, яке повертає функція next()
Функція next() повертає наступний елемент з ітератора.
Якщо ітератор вичерпано, повертається значення default, передане як аргумент.
Якщо аргумент default не передано та ітератор вичерпано, генерується виняток StopIteration.
Приклад №1: Отримання наступного елемента
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
random = [5, 9, 'cat'] # Конвертуємо список в ітератор random_iterator = iter(random) print(random_iterator) print(next(random_iterator)) print(next(random_iterator)) print(next(random_iterator)) # Це спричинить помилку. # Ітератора вичерпано print(next(random_iterator)) |
Результат:
<list_iterator object at 0x7feb49032b00>
5
9
cat
Traceback (most recent call last):
File "python", line 18, in <module>
StopIteration
Список — це ітерований об’єкт, і ми можемо отримати з нього ітератор за допомогою функції iter() в Python.
Ми отримали помилку з останнього стейтменту у цій програмі, тому що намагалися отримати наступний елемент, коли наступний елемент був недоступний (ітератор вичерпано). У таких випадках ми можемо вказати default-значення в якості другого параметра.
Приклад №2: Передача default-значення у функцію next()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
random = [5, 9] # Конвертуємо список в ітератор random_iterator = iter(random) print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) # random_iterator вичерпано print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) |
Результат:
5
9
-1
-1
-1
Ми вказали -1 як default-значення.
Примітка: Внутрішньо функція next() викликає метод __next__().
