파이썬의 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]

 

+ Recent posts