iterator란 next() 메서드를 통해 값을 하나씩 순차적으로 꺼낼 수 있는 객체이다.
예제)
from collections import Counter
def solution(participant, completion):
p_count = Counter(participant)
c_count = Counter(completion)
answer = p_count - c_count
# 딕셔너리에 남아 있는 유일한 키(완주 못한 선수 이름) 반환
return next(iter(answer))
모든 iterator는 iterable이지만,
모든 iterable이 iterator는 아니다.
따라서 set, dictionary 등 인덱싱이 되지 않는 iterable 객체는
iter()로 iterator를 생성한 뒤
next()를 사용하여 첫 요소를 순차적으로 꺼낼 수 있다.
특정 규칙에 따라 값을 생성하는 이터레이터를 구현해 둔 것을 itertools 이라고 한다.
이 라이브러리는 특정 규칙에 따라 값이 나열된 조합, 순열을 쉽게 구할 수 있다.
r 길이의 순열을 중복없이 출력하는 함수
※ 순열 : 어떤 집합의 원소들을 각각 특정한 순서로 배열하는 것.
# 1
import itertools
itertools.permutations(iterable, r=None)
#2
from itertools import permutations
permutations(iterable, r=None)
# 코드
from itertools import permutations
result = list(permutations('ABC', 2))
print(list(result))
# 결과
# >>> [('A','B'), ('A','C'), ('B','A'), ('B','C'), ('C','A'), ('C','B')]