[파이썬 코딩의 기술] - 36. 이터레이터나 제너레이터를 다룰 때는 itertools를 사용하라

파이썬 공식 문서

1. 여러 이터레이터 연결하기

1) chain

  • 여러 이터레이터를 하나의 순차적인 이터레이터로 합치고 싶을 때 사용
it = itertools.chain(['a','b','c'], ['d','e','f'])
print(list(it))


참고!

2) repeat

  • 한 값을 계속 반복해 내놓고 싶을 때 repeat을 사용
  • 두 번째 인자로 최대 반복 횟수를 지정 가능
it1 = itertools.repeat('오잉',3)
it2 = itertools.repeat('오잉',10)

3) cycle

  • 이터레이터가 내놓는 원소들을 계속 반복하고 싶을 때 사용
it = itertools.cycle([1,2])
result = [netxt(it) for _ in range (10)]
print(result)

4) tee

  • 이터레이터를 병렬적으로 지정된 개수만큼 이터레이터로 만들고 싶을 때 사용

5) zip_longest

  • zip 내장 함수의 변종으로, 짧은 쪽 이터레이터의 원소를 다 사용한 경우 fillvalue로 지정한 값을 채워 넣음.

2. 이터레이터에서 원소 거르기

1) islice

  • 슬라이싱, 스트라이딩 기능과 비슷한 함수로서 원소 인덱스를 이용해 슬라이싱 할 때 사용

2) takewhile

  • 이터레이터에서 각각의 요소에 순서대로 접근하여 주어진 술어가 False를 반환하기 전까지 각각 요소를 돌려줌.
    -10이 되면 predicate를 거짓으로 만들기 때문에 10에서 break 되면서 멈춤.

3) dropwhile

  • takewhile 함수와 반대로 False를 반환하는 첫 번째 원소를 찾을 때까지 이터레이터의 원소를 건너뛴다.

4) filterfalse

  • filter 내장 함수의 반대 기능.
  • 이터레이터에서 술어가 False를 반환하는 모든 원소를 돌려준다.

좋은 웹페이지 즐겨찾기