iterable 객체 : iter 함수에 인자로 전달이 가능한 객체
iterator 객체 : iter 함수가 생성해서 반환하는 객체
iterable 객체를 대상으로 iter 함수를 호출해서 iterator 객체를 만든다
iterator 객체를 생성할 수 있는 대상이 되는 것이 iterable 객체이다
# %%
ds = [1,2,3,4]
# for i in ds:
# print(i)
ir = iter(ds)
print(next(ir))
print(next(ir))
print(next(ir))
print(next(ir))
1
2
3
4
ds = [1,2] #iter 함수에 인자로 전달 가능한 객체
ir = iter(ds) #iter 함수가 생성해서 반환하는 객체 = 리모컨
print(next(ir)) #
print(next(ir)) # next() => 객체에 포함된 함수, 리모컨의 버튼
1
2
# %% 파이썬 이 실제 처리하는 코드
## __iter__ => 스페셜 메소드
ds = [1,2,3]
ir = ds.__iter__()
print(ir.__next__())
print(ir.__next__())
print(ir.__next__())
1
2
3
스페셜 메소드 : 파이썬 인터프리터에 의해서 호출되는 메소드
# %% 문자열 iter
st = "abcdefg"
sr = iter(st)
print(next(sr))
# %% tuple iter
tp = (1,2,3,4,5,6)
tr = iter(tp)
print(next(tr))
a
1
# %% for루프의 구조
ir = iter([1,2,3])
while True:
try:
i = next(ir)
print(i, end=" ")
except StopIteration:
break
# %%
for i in [1,2,3]:
print(i, end=" ")
1 2 3
1 2 3
728x90
'Dev. > Python' 카테고리의 다른 글
python :: lambda (0) | 2022.08.05 |
---|---|
python :: list comprehension 리스트 컴프리헨션 (0) | 2022.08.02 |
python :: 얕은 복사(shallow copy) (0) | 2022.08.02 |
Python :: mutable / immutable (0) | 2022.07.26 |
Python :: 예외처리 / 사용자 예외 처리, 파일 입출력 (0) | 2022.07.20 |
댓글