본문 바로가기
programming/Python

파이썬 반복자 사용하기 이터레이터와 이터러블 iterator iterable

by 개코 - 개발과 코딩 2021. 11. 17.

파이썬 반복자는 데이터집합인 컬렉션 데이터를 출력할 수 있도록 해 준다. iter 함수와 next 함수를 사용하면 된다. 반복문을 사용해도 되고, 그렇지 않아도 된다. 자동으로 다음값이 있다면 출력을 해 주기 때문이다. 언제 사용해야 될지는 상황에 따라 다르겠지만 반복문을 사용하면서 어떤 특수한 경우가 생길 수가 있다. 상황은 그리 많지 않기 때문에 알아두도록 하자. 대량의 데이터를 처리할 때 필요할 수 있다.

파이썬 반복자 이터레이터와 이터러블
iterator, iterable

파이썬의 반복자는 반복문과 사용하여 값을 출력할 수 있다.

집합관계의 컬렉션과 같은 데이터를 반복하여 출력하는 역할을 하는데 자료구조의 하나의 부분이기도 하다.

C#이나 자바와 같은 OOP 프로그래밍언어들에 자주 사용되기 때문에 알아두면 좋다.

반복자를 만드는 것은 iter 함수를 사용하고, 반복자를 반복하여 값을 출력하기 위해서는 next 함수를 사용한다.

iter 함수 next 함수 사용방법

규칙적인 데이터를 가지고 있는 컬렉션은 반복자를 만들 수 있다.

반복자를 반복하면 값을 추출할 수 있다.

이것은 iter 함수와 next 함수를 사용하여 작업을 수행할 수 있다.

샘플코드

배열을 사용하여 반복자를 만들어 사용해 보도록 하자.

배열은 가장 기본적은 컬렉션의 구조를 가진 데이터 집합이기도 하다.

파이썬의 배열은 리스트의 형식인 것에 다시 주목하자.

print('----------')

vArray = ["지수", "제니", "로제", "리사"]
vIter = iter(vArray)

print(type(vIter), vIter)

vEach = next(vIter)
print(type(vEach), vEach)

vEach = next(vIter)
print(type(vEach), vEach)

vEach = next(vIter)
print(type(vEach), vEach)

vEach = next(vIter)
print(type(vEach), vEach)

print('----------')

비슷한 코드가 많지만 next 함수는 실행 후 반복자의 다음 값을 출력한다는 점에 주목하자.

코드가 비슷하여 헷갈릴 수 있겠지만 결과 화면을 보면 이건 이것대로 신박하고 편한 기능이다.

iter 함수를 이용해 반복자를 만들고 next 함수를 이용해 값을 출력하고 있다.

단순히 next 함수를 사용했음에도 순차대로 값이 출력되는 것을 확인할 수 있다.

반복자라고 하면 당연히 반복문을 사용할 수 있어야 하겠다.

반복문을 사용해 보도록 하자.

print('----------')

vArray = ["지수", "제니", "로제", "리사"]
vIter = iter(vArray)

print(type(vIter), vIter)

for lpEach in vIter : #-{
    
    print(type(lpEach), lpEach)
    
#-}

print('----------')

반복자를 만들어 for 반복문으로 값을 출력해 보았다.

결과 화면을 보면 알겠지만 정상적으로 동작한다.

헌데 누가 배열을 굳이 반복자로 만들어 반복문을 만들까 싶다.

배열 자체로 반복문을 사용하면 그만인데 말이다.

어쨌든 테스트였기 때문에 이런 것도 되는구나 하고 그냥 넘어가자.

당연한 얘기겠지만

파이썬을 공부했다면 파이썬에서 제공하는 기본적인 컬렉션을 알고 있을 것이다.

리스트, 튜플, 딕셔너리, 세트가 그것이다.

이들은 데이터 집합을 가진 컬렉션 객체이기도 하다.

당연하게도 이들도 반복자로써 사용할 수 있는 것들이다

반응형

댓글