티스토리 뷰

Python

Iterator 설명

techbard 2015. 7. 16. 16:10
  • 이터레이터
  1. 대규모의 컨테이너를 생성하는 경우 다량의 메모리를 확보한 후 처리가 시작되기 때문에 부담을 줄이기 위한 목적
  2. 이터레이터 객체는 컨테이너를 하나씩 차례로 순회하는 메쏘드를 제공함
  3. All containers objects
  4. Like Strings, Tuples, Lists, Dictionaries, Range Objects
  5. iter() function -- returns an Iterable Object (it)
  6. next it calls __next__() method on it object
  7. Repeats __next__() till it gets "StopIteration"


# 리스트를 생성하는 경우 한 번에 생성을 완료하고 그 안에서 하나씩 순회하면서 처리할 수 있다.

l = range(1, 4)

for n in l:

    print(n)


결과)

1

2

3


# 이터레이터 객체를 생성해서 __next__() 메쏘드를 부르면 컨테이너를 하나씩 만들고 처리할 수 있다.

n = range(1, 4)

it = iter(n)


print(it.__next__())

print(it.__next__())

print(it.__next__())


결과)

1

2

3


# 객체의 내부 메쏘드를 호출하지 않고 next() 외장함수를 사용할 수도 있다.

n = range(1, 4)

it = iter(n)


print(next(it))

print(next(it))

print(next(it))


결과)

1

2

3


# 존재하지 않는 시퀀스 객체를 호출하려고 하면 StopIteration 에러가 발생한다.

n = range(1, 2)

it = iter(n)


print(next(it))

print(next(it))


결과)

...

StopIteration


# for - in 구문과 함께 사용

n = range(1, 3)

it = iter(n)


for i in it:

    print(i)


결과)

1

2


댓글
댓글쓰기 폼
공지사항
Total
410,768
Today
37
Yesterday
44
«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함