Каков правильный способ выполнения нескольких итераций по контейнеру? Из питона документации:Правильный способ повторения дважды по списку?
Итератор - Объект-контейнер (например, список) производит свежий новый итератор каждый раз, когда вы передаете его функции ИТЭР() или использовать его в цикл. Попытка этого с помощью итератора будет возвращать тот же самый искушенный объект итератора , используемый в предыдущем проходе итерации, делая , он выглядит как пустой контейнер.
Целью протокола является то, что после того, как метод next() итератора вызывает StopIteration, он будет продолжать делать это при последующих вызовах. Реализации, которые не подчиняются этому имуществу, считаются нарушенными. (Это ограничение было добавлено в Python 2.3, в Python 2.2, различные итераторы разбиты в соответствии с этим правилом.)
Если у меня есть этот код:
slist = [1,2,3,4]
rlist = reversed(slist)
list(rlist)
#[4,3,2,1]
tuple(rlist)
#()
Что бы самым простым и самый правильный способ повторить повторение «rlist» дважды?
Обратите внимание, что вы не итерацию над списком дважды - это легко. Вы на самом деле повторяете « 'дважды. –
mgilson