[python] iterator

김기용·2020년 10월 25일
0
post-thumbnail

🤔 iterable(순환가능) 형

list, dict, set, bytes, tuple, range 등을 ⚡️iterable(순환가능) 객체 라고 한다. 값이 여러개 들어갈 수 있는 데이터 구조라고 생각하면 쉽다.


🤔 iterator 객체 와 iter() 함수

iterable(순환가능) 형은 iter()함수 를 통해 ⚡️iterator 객체가 될 수 있다.


🤔 next()함수

⚡️iterator 객체는 next() 함수를 통해 순환가능한 객체의 다음 원소를 반환한다.


🕹 정수형을 iter() 함수로 iterator로 바꾸려고 한다면?

n = 100
n_iter = iter(n)

Traceback (most recnet call last):
	File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

정수형 변수는 ⚡️iterable 객체가 아니기 때문에 iter() 함수를 사용해서 ⚡️iterator 객체로 변환하려고 하면 TypeError 가 발생한다.


🕹 리스트형을 iter() 함수로 iterator로 바꾸려고 한다면?

# list가 iterable 객체인지 검사
try:
	num_list = [1,2,3,4]
    iterator = iter(num_list)
except TypeError:
	print('list는 iterable 객체가 아닙니다.')
else:
	print('list는 iterable  객체입니다.')
    
출력결과: list는 iterable  객체입니다.

num_list 는 ⚡️iterable 이기 때문에 iter() 함수를 사용해서 ⚡️iterator 객체로 변환하려고 하면 TypeError 가 발생한다.


next() 함수

🕹 next() 함수를 이용해서 ⚡️iterator 객체의 다음 요소를 얻을 수 있다.

num_list = [1,2,3]
type(num_list)
num_list_iter = iter(num_list)
type(num_list_iter)
next(num_list_iter)

또한 ⚡️__next__() 메소드를 이용해서 iterator 객체의 다음 요소를 얻을 수 있다.
더이상 가져올 객체가 없을경우 StopIteration 예외 발생시킨다.

profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글