본문 바로가기
Python

[Python] 이터레이터(Iterator)

by UnoCode 2020. 6. 27.

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)를 얻습니다.

 

https://www.youtube.com/watch?v=kpSChXZMKOc

 

https://www.youtube.com/watch?v=kpSChXZMKOc

 

'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

댓글