길이를 모르는/ 길이가 서로 다른 리스트를 순환하고 싶을 때
for idx, value in enumerate(iterable):
idx %(len(iterable))로 길이 내 idx 순환
공간복잡도 우수
cycle(iterable)
next(iterable[idx])
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
A B C D A B C D A B C D ...
이터레이터 객체 자신을 돌려줍니다. 이는 for 와 in 문에 컨테이너와 이터레이터 모두 사용될 수 있게 하는 데 필요합니다.
컨테이너의 다음 항목을 돌려줍니다. 더 항목이 없으면 StopIteration 예외를 일으킵니다.
파이썬 공식 문서
itertools.cycle()
iterator