iteration 이란
시전적 의미로는 1. 되풀이, 2. 반복
이라는 의미를 가지고 있습니다.
- 리스트, 집합, 딕셔너리와 같은 타입니다, 문자열은 for -in 구문을 통해 반복적으로 하나씩 데이터를 처리합니다.
- 이와 같이 여러 개의 데이터를 포함한 타입중에서 반복적으로 하나하나 꺼내어 처리가능한 컬렉션이나 Sequence 들을 순환기능(iterable) 객체라고 합니다.
- iterator는 next()함수를 구현한 객체를 말하며 next() 함수는 순환기능 한 객체의 다음 원소를 반환합니다.
- 파이썬의 iterable형은 : list, dict set bytes, tuple, range
- iter() 함수는 : itorable형 객체를 iterator 객체로 만드는 파이썬 내장함수
비교
n = 100
n_iter = iter(n)
Type Error : "int" object is not iterable
# 정수형 변수는 iterable 하지 않는다
# 따라서 iter() 함수를 통해 iterator 객체로 바꿀 수 없다.
이렇게 Type Erorr가 뜨는 것을 볼 수 있는데요
Try문장을 통해 확인해 보겠습니다.
try:
l = [1, 2, 3, 4]
iterator = iter(l)
except TypeError:
print("list는 iterable 객체가 아닙니다.")
else:
print("list는 iterable 객체가 입니다.")
try:
l = (1, 2, 3, 4)
iterator = iter(l)
except TypeError:
print("tuple는 iterable 객체가 아닙니다.")
else:
print("tuple는 iterable 객체가 입니다.")
try:
l = 100
iterator = iter(l)
except TypeError:
print("int는 iterable 객체가 아닙니다.")
else:
print("int는 iterable 객체가 입니다.")
print(iterator.__next__())
print(iterator.__next__())
print(iterator.__next__())
리스트는 iterable가능한 객체 이므로
결과
__next__
위 코드의 print(iterator.__next__()) 가 보이시는 가요??
*** __next__() == next() 동일한 기능을 합니다.
next() 함수를 이용해서 iterator 객체 의 다음 요소(element)를 얻습니다.
'Python' 카테고리의 다른 글
[Python] Lambda (0) | 2020.06.27 |
---|---|
[Python] Generator Or Iterator 코드 분석 실습 (0) | 2020.06.27 |
[Python] 제너레이터(generator) (0) | 2020.06.27 |
[Python] 패키지 생성 실습 (0) | 2020.06.26 |
[Python] Sys modules (0) | 2020.06.25 |
댓글