파이썬의 itertools 모듈에서 count, cycle, repeat을 infinite iterator라고 합니다.
이터레이터가 무한히 반복합니다.
1. count(start, [step])
숫자 타입(int, float, complex) 부터 step만큼 더해서 무한히 반복합니다.
step의 기본값은 1입니다.
from itertools import count
# int 20부터 1씩 증가
for i in count(20):
print(i) # 20, 21, 22, ...
# int 10부터 2씩 증가
for i in count(10, 2):
print(i) # 10, 12, 14, ...
# float 2.5부터 0.1씩 증가
for i in count(2.5, 0.1):
print(i) # 2.5, 2.6, 2.7, 2.8, ...
# complex 1+2j부터 2j씩 증가
for i in count(1+2j, 2j):
print(i) # (1+2j), (1+4j), (1+6j), ...
2. cycle(iterable)
iterable한 매개변수를 받으면, 그 매개변수를 무한히 반복합니다.
from itertools import cycle
# 문자열 "abcd"를 무한 반복
for ch in cycle("abcd"):
print(ch) # a, b, c, d, a, b, c, d, a, b, ...
# 리스트 [1, 2, 3, 4]를 무한 반복
for num in cycle([1, 2, 3, 4]):
print(num) # 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, ...
3. repeat(object, [times])
object 객체를 times 만큼 반복합니다.
times의 기본값은 None으로 무한히 반복합니다.
from itertools import repeat
# 정수 10을 3번 반복
for i in repeat(10, 3):
print(i) # 10, 10, 10
# 문자열 'a'를 4번 반복
for i in repeat('a', 4):
print(i) # a, a, a, a
# 리스트 [1, 2, 3]을 3번 반복
for i in repeat([1, 2, 3], 3):
print(i) # [1, 2, 3], [1, 2, 3], [1, 2, 3]
'프로그래밍언어 > 파이썬' 카테고리의 다른 글
[functools] cmp_to_key - old-style comparison function (0) | 2022.07.15 |
---|---|
[functools]함수 결과 캐싱 - cache, cached_property, lru_cache (0) | 2022.07.15 |
[파이썬]itertools - zip, zip_longest 비교 (0) | 2022.07.13 |
[파이썬]itertools - product, permutations, combinations (0) | 2022.07.13 |