코딩 연습

(파이썬) itertools 모듈의 count 함수 본문

Python

(파이썬) itertools 모듈의 count 함수

코딩아저씨 2017. 3. 21. 23:42
반응형

파이썬의 itertools 모듈에는 다음과 같은 count 라는 함수가 있다.

def count(start=0, step=1):
    # count(10) --> 10 11 12 13 14 ...
    # count(2.5, 0.5) -> 2.5 3.0 3.5 ...
    n = start
    while True:
        yield n
        n += step

위에서 보는 바와 같이 함수 count 는 두 개의 매개 변수 start 와 step 을 갖고, 이들의 기본값(default value)는 각각 0과 1로 설정되어 있다.

함수의 설명에서 알 수 있듯이 count 함수는 start 로부터 시작하여 step 만큼 떨어진 수들을 무한히 생성하는 무한 반복자를 리턴한다.

다음의 예제를 보면 쉽게 이해할 수 있다.

>>> for i in count(1):
...     if i < 10:
...         print(i)
...     else:
...         break
...
1
2
3
4
5
6
7
8
9

step 의 기본값은 1이므로 1씩 증가하는 것을 볼 수 있다.

>>> for i in count(5):
...     if i < 10:
...         print(i)
...     else:
...         break
...
5
6
7
8
9

start 를 5로 주면 5부터 1씩 증가하는 것을 볼 수 있다.

>>> for i in count(2, 2):
...     if i < 10:
...         print(i)
...     else:
...         break
...
2
4
6
8

step 값으로 2를 전달하면 2씩 증가하게 된다.

>>> for i in count(5.5, 0.3):
...     if i < 10:
...         print(i)
...     else:
...         break
...
5.5
5.8
6.1
6.3999999999999995
6.699999999999999
6.999999999999999
7.299999999999999
7.599999999999999
7.899999999999999
8.2
8.5
8.8
9.100000000000001
9.400000000000002
9.700000000000003

start 와 step의 값은 정수가 아니어도 상관없다.

>>> for i in count(10, -2):
...     if i > 0:
...         print(i)
...     else:
...         break
...
10
8
6
4
2

 step 의 값은 음수도 가능함을 알 수 있다.


반응형


Comments