반응형
파이썬의 내장함수(Built-in Function)인 iter() 함수에 대해 알아봅니다.
이터러블(iterable)은 “반복 가능한”의 의미로 이터러블 객체는 “반복이 가능한 데이터”를 말합니다.
예를 들어보겠습니다.
a=[10, 20, 30]
for i in a:
print(i, end=' ')
리스트(list) a는 이터러블 즉, 반복 가능한 객체입니다.
이터러블(iterable) 객체이면 이터레이터(iterator)일까요? |
이터레이터(iterator)는 next() 함수로 호출이 가능해야 합니다.
다음의 예를 살펴보겠습니다.
a=[10,20,30] next(a) |
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
next(a)
TypeError: 'list' object is not an iterator
list는 iterator가 아니라고 출력합니다.
리스트는 이터러블이지만 이터레이터는 아닙니다. 즉, 이터러블과 이터레이터는 같지 않다라는 것을 알 수 있습니다.
내장함수 iter()
iter(object) |
반복 가능한 객체(iterator)를 반환합니다.
a=[10, 20, 30] b=iter(a) type(a) <class 'list'> type(b) <class 'list_iterator'> next(a) Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> next(a) TypeError: 'list' object is not an iterator next(b) 10 next(b) 20 next(b) 30 next(b) Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> next(b) StopIteration |
iterator 객체는 next() 함수를 호출할 때마다 객체의 요소를 차례대로 반환합니다. 만약 반환할 값이 없다면 " StopIteration" 예외가 발생합니다.
다음 예제를 실행해 보겠습니다.
a=[10,20,30] for i in a: print(i, end=' ') b=iter(a) for i in b: print(i, end=' ') for i in b: print(i, end=' ') # 출력되지 않았습니다. |
(Output)
10 20 30 10 20 30
마지막 for 문의 결과가 출력되지 않았습니다.
iterator 객체는 for문이나 next로 그 값을 한 번 읽고나면 다시는 읽을 수 없습니다.
반응형
'Python' 카테고리의 다른 글
(파이썬) 내장함수 filter() 필터 (0) | 2023.12.29 |
---|---|
(파이썬) 내장함수 eval(), globals locals 인수 (0) | 2023.12.28 |
(파이썬) 특정 폴더의 파일 목록, 확장자가 같은 파일 출력하기 (0) | 2023.12.26 |
(파이썬) 내장함수 enumerate() 열거 객체 (0) | 2023.12.23 |
(파이썬) 내장함수 divmod() 몫 나머지 구하기 (0) | 2023.12.22 |