본문 바로가기
programming/Python

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

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

반복자는 조금난해하다. 파이썬의 반복자는 규칙적인 데이터를 반복할 수 있고, 쉽게 데이터를 출력할 수 있다. 규칙적인 데이터를 반복자로 만들 수 있다는 것은 순환과 반복이 가능하다는 것을 의미한다. 쉽게 생각하자. 반복할 수 있으면 된다. 자바나 C#을 경험한 사람이라면 구문의 난해함에 당황하기도 한다. 익숙해지면 코드길이가 상당히 짧아지는 경험을 할 수 신기방기 신세계를 경험할 수 있다.

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

OOP 뿐만 아니라 모든 프로그램 언어에는 반복자라는 것이 있다.

iterator 라고 작성하고 이터레이터라 읽는다.

조금 난해하고 이해가 잘 가지 않는 것들이기도 하다.

하지만, 눈으로 10초정보 뚫어지게 보면 아~ 이런거구나~ 하고 느낌은 온다.

쉽게 말해 반복문을 이용해 데이터를 추출할 수 있으면 되는 것들이다.

반복문의 관계

데이터의 집합을 컬렉션이라고 한다.

보통의 프로그래밍 언어에서는 동일한 데이터의 규칙적인 나열을 컬렉션이라고 한다.

파이썬의 경우 데이터에 관대하기 때문에 데이터 타입이 다르더라도 나열만 해 주면 컬렉션이 된다.

이것들은 반복문으로써 데이터를 순환하면서 값에 접근하고 출력할 수 있다.

그럼 이것들이 반복문이 반복자와 무슨 관계가 있을까?

앞에서 언급했지만 반복자는 반복문을 이용할 수 있는 데이터 집합이라고 그냥 단정지었지만 파헤쳐보면 아~ 그렇구나~ 느낌이 올 것이다.

iterator 반복자

반복자는 프로그래밍 언어에서 일관된 데이터구조를 같은 자료구조에 빠지지 않는 것이기도 하다.

자바나 C#에도 대표적인 것이 있는 hasNext 메서드가 그것이다.

컬렉션을 순환하면서 다음순서에 값이 있는지를 판별하는 역할을 한다.

파이썬의 반복자는 iter() 메서드와 next() 메서드를 사용한다.

파이썬에서 반복자인 iter() 메서드와 next() 메서드를 사용하기 위한 대표적인 데이터 구조는 리스트, 튜플, 딕셔너리, 세트가 있다.

iterable 반복가능 데이터

반복되는 구조의 데이터가 있을 때 반복문을 사용할 수 있다면 iterable 하다고 할 수 있다.

배열이 그렇고, json과 같은 규칙적인 데이터 구조가 그렇다.

반복할 수만 있다면 반복 가능 데이터인 iterable 이 된다.

쉽게 생각하자.

반복할 수 있으면 되는 데이터이다.

iterator 와 iterable

이 둘의 차이를 보자.

비슷해 보이지만 차이가 있다.

iterator 는 반복자이다.

반복자는 메서드를 말한다.

반복이 가능한 데이터로 만드는 iter() 메서드와 순환하며 값을 출력하는 next() 메서드가 있다.

반복가능 데이터인 iterable 은 규칙적인 데이터 집합인 것에 주목하자.

규칙적인 데이터 집합은 컬렉션이기도 하다.

컬렉션은 반복이 가능하다.

컬렉션을 iter() 메서드로 반복자를 만들면, 반복자는 next() 메서드를 이용해 데이터를 추출할 수 있다.

반응형

댓글