itertools 모듈은 반복 가능한(iterable) 객체를 다루는데 사용되는 유용한 함수들을 제공합니다. itertools는 다양한 기능을 제공하여 여러 종류의 이터레이터를 다룰 수 있습니다. 이번에는 itertools 모듈에서 가장 자주 사용되는 함수들에 대해 알아보겠습니다.
1. count
count는 무한히 반복되는 이터레이터를 만듭니다. 시작값(start)과 증가값(step)을 인자로 받습니다.
from itertools import count
# 무한한 이터레이터 생성
counter = count(start=0, step=1)
# 다섯번째 값까지 출력
for i in range(5):
print(next(counter))
2. cycle
cycle은 주어진 이터레이터를 무한히 반복합니다.
from itertools import cycle
# 무한한 이터레이터 생성
colors = cycle(['red', 'green', 'blue'])
# 다섯번째 값까지 출력
for i in range(5):
print(next(colors))
3. repeat
repeat는 주어진 값을 무한히 반복합니다. 옵션으로 반복 횟수를 지정할 수 있습니다.
from itertools import repeat
# 3번 반복하는 이터레이터 생성
repeater = repeat('Hello', 3)
# 모든 값을 출력
for i in repeater:
print(i)
4. chain
chain은 여러 이터레이터를 하나로 합칩니다.
from itertools import chain
# 여러 이터레이터를 하나로 합치기
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
combined = chain(numbers, letters)
# 하나로 합쳐진 이터레이터 출력
for i in combined:
print(i)
5. compress
compress는 데이터와 선택적인 불리언 값을 가지는 선택자(iterable)를 받아서 선택자가 참(True)인 값만 반환합니다.
from itertools import compress
# compress 예제
data = [1, 2, 3, 4, 5, 6, 7, 8]
selector = [True, False, True, False, True, False, True, False]
result = compress(data, selector)
# 선택된 값만 출력
for i in result:
print(i)
6. dropwhile
dropwhile은 주어진 함수가 True를 반환하는 동안 이터레이터의 값을 무시합니다. 함수가 False를 반환하면 나머지 값을 반환합니다.
from itertools import dropwhile
# dropwhile 예제
data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
result = dropwhile(lambda x: x % 2 != 0, data)
# 함수가 False를 반환하는 이후의 값만 출력
for i in result:
print(i)
7. takewhile
takewhile은 주어진 함수가 True를 반환하는 동안 이터레이터의 값을 반환합니다. 함수가 False를 반환하면 값을 반환하지 않고 종료합니다.
from itertools import takewhile
# takewhile 예제
data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
result = takewhile(lambda x: x % 2 != 0, data)
# 함수가 False를 반환하기 전까지의 값만 출력
for i in result:
print(i)
8. accumulate
accumulate는 이터레이터의 모든 값을 누적하여 반환합니다. 누적 함수를 지정할 수 있으며, 기본적으로 덧셈 연산을 수행합니다.
from itertools import accumulate
# accumulate 예제
data = [1, 2, 3, 4, 5]
result = accumulate(data)
# 모든 값을 누적하여 출력
for i in result:
print(i)
9. groupby
groupby는 이터레이터에서 연속적으로 나오는 값들을 그룹화합니다. 그룹화 함수를 지정할 수 있으며, 기본적으로 값이 같은 경우 그룹으로 묶습니다.
from itertools import groupby
# groupby 예제
data = [1, 1, 2, 2, 3, 3, 4, 4]
result = groupby(data)
# 그룹화된 결과 출력
for key, group in result:
print(key, list(group))
10. product
product는 두 개 이상의 이터레이터의 모든 조합을 반환합니다.
from itertools import product
# product 예제
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
result = product(numbers, letters)
# 모든 조합 출력
for i in result:
print(i)
이외에도 itertools 모듈은 많은 함수들을 제공합니다. itertools의 모든 함수들에 대해 자세한 내용은 공식 문서를 참조하시기 바랍니다.
'라이브러리' 카테고리의 다른 글
파이썬(Python) memoryview 사용법 정리 (0) | 2023.03.02 |
---|---|
파이썬(Python) random 사용법 정리 (0) | 2023.03.01 |
파이썬(Python) hashlib 사용법 정리 (0) | 2023.02.28 |
파이썬(Python) datetime 사용법 정리 (0) | 2023.02.28 |
파이썬(Python) requests 사용법 정리 (0) | 2023.02.28 |