03-1 반복 가능 자료형과 반복자
반복자란?
- 하나 이상의 항목이 포함되어 있는 자료구조에서 데이터를 순차적으로 꺼내어 이용할 수 있는 객체
- 데이터를 순차적으로 꺼낼 때에는 next()라는 함수나 이 객체의 next()라는 특수 메소드를 사용해야 한다
- 파이썬의 반복자는 이렇게 next()라는 메소드를 가지고 차례차례로 다음 항목의 요소를 반환할 수 있다
- 반복 가능 객체 : 리스트, 튜플, range형
- 반복 가능 객체 -> iter() 함수 -> 반복자 객체(iterator) -> next() 함수 / StopIteration
반복가능(iterable) 자료형
- 반복자 자료형과 유사한 자료형
- 반복가능 자료형으로는 리스트, 딕셔너리, 튜플, 문자열, 집합, 파일, range가 있다
- 반복가능 자료형은 파이썬 내장함수인 iter() 함수를 이용해서 반복자 객체로 만들 수 있다
l = [10, 20, 30]
l_iter = iter(l) # 반복 가능 자료형
n = 100
n_iter = iter(n) # 반복 불가능 자료형
next() 함수를 사용한 반복자 객체의 요소 추출
lst = [10, 20, 30]
l_iter = iter(lst)
next(l_iter) # 10
next(l_iter) # 20
next(l_iter) # 30
next(l_iter) # StopIteration err
next() 메소드를 사용한 반복자 객체의 요소 추출
next() 함수의 호출과 동일하게 작용
lst = [10, 20, 30]
l_iter = iter(lst)
l_iter__next__() # 10
l_iter__next__() # 20
l_iter__next__() # 30
l_iter__next__() # StopIteration err
range형 객체를 반복자 객체로 만들기
- range() 함수는 range형 객체를 만들어준다
- 이 range형 객체는 iter() 함수를 통해 range_iterator 형으로 변환시킬 수 있는 반복가능 객체이다
- range_iterator형 객체는 next() 함수를 통해 다음 항목으로 접근할 수 있다
iterator 객체와 for - in range() 구문
for i in range(5):
print(i, end = ' ')
- 위의 대화창 실습 코드와 같이 iterator 객체는 for - in 구문을 통해서 반복적으로 하나씩 데이터를 꺼내서 처리할 수 있다
정리
- 파이썬은 반복가능 자료형(iterable)과 반복불가능 자료형이 있음
- 반복가능 자료형으로는 list, dict, set, str, tuple, bytes, range가 있음
- 반복가능 객체를 iter()함수를 사용하여 반복자 객체(iterator)로 만들 수 있다
- next() 내장 함수나 next() 메소드를 이용하여 반복자 객체 내의 원소를 하나하나 뽑아낼 수 있다
'프로그래머 > Python' 카테고리의 다른 글
[널널한 교수의 고급 파이썬] 03-3 반복 가능 객체를 위한 내장함수 (0) | 2020.12.11 |
---|---|
[널널한 교수의 고급 파이썬] 03-2 반복자 객체 생성 (0) | 2020.12.11 |
[널널한 교수의 고급 파이썬] 02-3 집합과 튜플 축약 (0) | 2020.12.11 |
[널널한 교수의 고급 파이썬] 02-1, 02-2 리스트 축약 표현 (0) | 2020.12.11 |
[널널한 교수의 고급 파이썬] 01-5 동적 타이핑과 정적 타이핑 (0) | 2020.12.11 |