Iteration은 어떤 collection을 이룬 객체의 각 항목을 하나씩 접근하는 것을 의미하는 일반적인 용어이다.
파이썬에서 Iterable과 Iterator은 특정한 의미를 갖는다.
iterable은 일반적으로 iterator를 반환하는 iter 메서드를 가지고 있거나 0부터 시작하는 sequential indexes를 취할 수 있는 getitem 메서드를 정의하는 객체다. (인덱스가 더 이상 유효하지 않을 때 IndexError를 발생시킨다). 간단히하자면 모든 반복가능한 개체를 말한다.
iterator는 다음 next (python 3) 메소드를 가진 객체이다.
파이썬에서 for loop, map, list comprehension 등을 사용할 때마다 next 메소드가 자동으로 호출되어 iterator에서 각 아이템을 가져와 반복 과정을 수행한다.
모든 Iterator는 Iterable하다