이번 포스팅에서는 파이썬(Python) 내장 함수인 iter 함수의 사용법을 알아보려고 한다.
1. iter 함수 사용법
iter 함수는 순회 가능한(Iterable) 객체를 받아서 Iterator로 바꿔준다. 또한 특정값(Sentinel)을 지정하여 더 이상 값을 꺼내지 않도록 설정할 수도 있는데 이때에는 첫 번째 인자로 순회 가능한 객체가 아닌 호출 가능한(Callable) 함수를 넣는다. 구체적인 사용법은 다음과 같다.
iter( '순회가능한 객체' )
iter( '호출 가능한 객체', '반복 감시자' )
2. iter 함수 예제
사용법을 알았으니 실제로 써보자.
a. 첫 번째 사용법
다음은 리스트를 iterator 객체로 바꿔준다. iterator는 그 자체로 출력할 순 없고 for 문이나 list 등으로 감싸줘야 값을 불러올 수 있다. 또한 iterator는 한번 값을 출력하면 그 값이 사라진다.
iter_x = iter([1,2,3,4,5])
print(list(iter_x))
print(list(iter_x))
위에서 보는 바와 같이 iterator 객체는 출력이되고나서 한번 더 출력하면 남아있는 원소가 없다.
iter 함수는 next 함수와 같이 사용되는 경우가 많다. next는 iterator의 값을 순서대로 하나씩 꺼내 주며 더 이상 꺼낼 값이 없으면 StopIteration 에러를 발생시킨다. 이때 iter_x에 내장되어 있는 __next__를 써도 동일한 결과를 얻을 수 있다.
iter_x = iter([1,2,3,4,5])
while True:
try:
print(next(iter_x)) ## print(iter_x.__next__())
except:
raise
참고로 iterator로부터 값을 모두 꺼내온 경우 기본값을 출력할 수 있도록 할 수 있다. next의 두번째 인자가 바로 그것이다. 다음은 iterator에서 모든 값을 다 꺼낸 경우 10을 출력하도록 한 것이다.
iter_x = iter([1,2,3,4,5])
iter_num = 1
max_iter = 6
while iter_num<=max_iter:
print(next(iter_x, 10))
iter_num += 1
b. 두 번째 사용법
이번엔 iter 함수의 두 번째 사용법을 알아보자. 다음은 0 부터 10까지 무작위 숫자를 출력하다가 8이 나오는 순간 반복을 끝내는 코드이다.
import random
def func():
return random.randint(0, 10)
iter_y = iter(func, 8)
while True:
try:
print(next(iter_y))
except:
raise
'프로그래밍 > Python' 카테고리의 다른 글
[오류 해결] Glyph 8722 missing from current font (Matplotlib에서 빼기, '-', minus, 음수 부호 표기 오류) (0) | 2022.07.18 |
---|---|
파이썬(Python) 함수에 부분 인자 적용하기 (feat. partial) (410) | 2022.07.15 |
파이썬(Python) 내장함수 filter를 이용하여 리스트에서 특정 조건을 만족하는 원소 추출하기 (393) | 2022.07.12 |
[Python] 파이썬 모듈(라이브러리, 패키지) 버전 확인하기(__version__, pip) (386) | 2022.05.11 |
[python] lstrip, rstrip을 이용한 문자 제거 (401) | 2022.05.08 |
댓글