@nevro
не пойми кто

Обойти строку в for in можно, но 'str' object is not an iterator. Не все, что в for in — итераторы?

st = 'abcd'

for i in st:
    next(i)

..............
TypeError: 'str' object is not an iterator

Если тип можно использовать в for-in, то он итерируем и можно применить next() - сколько читал про механизм получения следующего объекта, данный метод ее реализует, а тут его нет, при этом b итерируется. оО?
  • Вопрос задан
  • 571 просмотр
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
str iterable but not an iterator
Ответ написан
Комментировать
aRegius
@aRegius
Python Enthusiast
>>> s = 'ABC'   #iterable, но не iterator
>>> for char in s:
	        print(char)

A
B
C

>>> s = 'ABC'
>>> it = iter(s)   #а вот уже iterator, созданный из iterable
>>> for i in range(4):
	        print(next(it))

A
B
C
Traceback (most recent call last):
  File "<pyshell#35>", line 2, in <module>
    print(next(it))
StopIteration
>>>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы