Python 에서 Iterator 와 Iterable 의 차이 에 대한 상세 한 설명

Python 에서 list,truple,str,dict 등 은 모두 교체 할 수 있 지만 교체 기 는 아 닙 니 다.왜?
교체 기 에 비해 크게 다 르 기 때문에 list/truple/map/dict 는 이 데이터 의 크기 가 확실 합 니 다.즉,얼마나 많은 것 을 알 수 있 는 지 알 수 있 습 니 다.그러나 교체 기 는 아니다.교체 기 는 몇 번 을 실행 해 야 할 지 모 르 기 때문에 몇 개의 요소 가 있 는 지 모 르 고 next()를 호출 할 때마다 한 걸음 씩 내 려 가 는 타성 으로 이해 할 수 있다.
교체 가능 한 지 아 닌 지 를 판단 하고 Iterable 로

from collections import Iterable
isinstance({}, Iterable) --> True
isinstance((), Iterable) --> True
isinstance(100, Iterable) --> False
교체 기

from collections import Iterator
isinstance({}, Iterator) --> False
isinstance((), Iterator) --> False
isinstance( (x for x in range(10)), Iterator) --> True
그래서
for 순환 이 가능 한 것 은 모두 Iterable 입 니 다.
next()가 가능 한 것 은 모두 Iterator 입 니 다.
list,truple,dict,str 와 같은 집합 데이터 형식 은 Itrable 이지 Iterator 가 아니 지만 iter()함 수 를 통 해 Iterator 대상 을 얻 을 수 있 습 니 다.
Python 의 for 순환 은 next 를 통 해 이 루어 집 니 다.

for x in [1,2,3,4,5]:
 pass
등가

#   iterator  
it = iter([1,2,3,4,5])
while True:
 try:
  #      
  x = next(it);
 except StopIteration:
  #   StopIteration     
  break
이 파 이 썬 의 Iterator 와 Iterable 의 차이 점 에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기