Почему сжатие снова «перечисляет» итераторы, когда они уже заархивированы, а не продвигает их в Python 2.x?Python

Программы на Python
Anonymous
Почему сжатие снова «перечисляет» итераторы, когда они уже заархивированы, а не продвигает их в Python 2.x?

Сообщение Anonymous »

Код: Выделить всё

a = enumerate('abcdef')
b = enumerate('ghi')

for i, j in zip(a, b):
print(i, j)
if i[0] == 0:
next(itertools.islice(zip(a, b), 1, 1), None)
Для приведенного выше кода я ожидаю следующий результат при увеличении zip(a, b) на 1:

Код: Выделить всё

 ((0, 'a'), (0, 'g'))
((2, 'c'), (2, 'i'))
Однако он по-прежнему дает тот же результат, что и следующий код:

Код: Выделить всё

iter1 = enumerate('abcdef')
iter2 = enumerate('ghi')

for i, j in zip(a, b):
print(i, j)
выход:

Код: Выделить всё

((0, 'a'), (0, 'g'))
((1, 'b'), (1, 'h'))
((2, 'c'), (2, 'i'))
почему оператор next(itertools.islice(zip(a, b), 1, 1), None) не продвигает zip(a, b)?

Вернуться в «Python»