Python - Iterable 객체와 Iterator 객체

JungSik Heo·2023년 9월 23일
0

파이썬 입문

목록 보기
4/18
post-custom-banner

"Iterator 객체를 생성할수 있는 대상이 되는 것이 iterable 객체이다"

1. Iterable과 Iterator


1-1 Iterable

  • iterable 객체 - 반복 가능한 객체
  • 대표적으로 iterable한 타입 - list, dict, set, str, bytes, tuple, range
    1. for in 반복문, Range, enumerate 에서 iterable한 타입과 iterable한 타입을 확인하는 방법이 있음.

1-2 Iterator

  • iterator 객체 - 값을 차례대로 꺼낼 수 있는 객체입니다.
  • iterator는 iterable한 객체를 내장함수 또는 iterable객체의 메소드로 객체를 생성할 수 있습니다.
  • 파이썬 내장함수 iter()를 사용해 iterator 객체를 만들어봅니다.

a = [1, 2, 3]
a_iter = iter(a)
type(a_iter)
<class 'list_iterator'>

Iterable VS Iterator

이렇게 for문을 통해 순회할 수 있는 객체를 Iterable하다고 생각하시면 됩니다. 대표적으로 위에서 잠깐 설명한 시퀀스 타입과 컬렉션 타입의 객체가 있습니다.

그럼 Iterable한 것과 Iterator는 무슨 차이가 있는걸까요?

쉽게 말하자면 Iterable한 것은 next 메소드가 존재하지 않고 Iterator는 존재한다고 생각하시면 됩니다.

next 메소드로 다음 값을 반환할 수 있으면 Iterator, 없으면 Iterable한 객체입니다.

for 루프와 iterable 객체

for i in [1, 2, 3]:
print(i, end = ' ')

내부적으로 다음과 같이 동작

ir = iter([1, 2, 3])
while True:
try:
i = next(ir)
print(i, end = ' ')
except StopIteration:
break

iterable 객체의 종류와 확인 방법

dir([1, 2]) # ['add', 'class', ...]
hasattr([1, 2], 'iter') # True

https://tibetsandfox.tistory.com/27

profile
쿵스보이(얼짱뮤지션)
post-custom-banner

0개의 댓글