Python перебирает элемент, возвращаемый генератором - PullRequest
3 голосов
/ 15 января 2020

Я пытаюсь понять, как работают генераторы.

Python 3.8.1 (default, Dec 31 2019, 18:44:59) 
[GCC 5.4.0 20160609] on linux
>>> def gen():
...     yield '123'
... 
>>> list(gen())
['123']
>>> list(next(gen()))
['1', '2', '3']

Пожалуйста, объясните, почему python перебирает элемент в случае использования next ()?

1 Ответ

4 голосов
/ 15 января 2020

В вашем случае это потому, что ваш генератор выдает '123' с типом str - и next(gen()) - это одно и то же значение. Вот так list(str) работает

Вы можете попробовать этот код:

test = '123' # str
print(list(test)) # will also print ['1', '2', '3']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...