치다:
>>> lst = iter([1,2,3])
>>> next(lst)
1
>>> next(lst)
2
따라서 예상대로 반복기의 진행은 동일한 객체를 변경하여 처리됩니다.
이것은 사실입니다.
a = iter(list(range(10)))
for i in a:
print(i)
next(a)
두 번째 요소마다 건너 뛰기 : next
반복자를 한 번 진행시켜야 하는 호출 , 루프에 의한 암시 적 호출은 두 번째로 진행해야 하며이 두 번째 호출의 결과는에 할당됩니다 i
.
그렇지 않습니다. 루프 는 목록의 모든 항목을 건너 뛰지 않고 인쇄 합니다.
내 첫 번째 생각은 루프 iter
가 전달 된 것을 호출하기 때문에 이것이 일어날 수 있고 이것이 독립적 인 반복자를 줄 수 있다는 것 iter(a) is a
입니다. 이것은 그렇지 않습니다 .
그렇다면 왜이 next
경우 반복자를 진행시키는 것처럼 보이지 않습니까?