python 학습-교체기

2751 단어
우리는 for 순환에 직접적으로 작용할 수 있는 데이터 유형은 다음과 같은 몇 가지가 있다는 것을 이미 알고 있다.
한 종류는 집합 데이터 유형, 예를 들어list,tuple,dict,set,str 등이다.
한 종류는 generator 생성기와 테이프 yield 를 포함하는generator function이다.
이러한 순환에 직접적으로 작용할 수 있는 대상을 통칭하여 교체 가능한 대상이라고 한다for.Iterable를 사용하여 객체가 isinstance()인지 여부를 판단할 수 있습니다.
>>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> isinstance('abc', Iterable)
True
>>> isinstance((x for x in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False


생성기는 Iterable 순환에 작용할 뿐만 아니라 for 함수에 의해 끊임없이 호출되어 다음 값을 되돌려받을 수 있다. 마지막에 던져진 next() 오류가 다음 값을 되돌릴 수 없다는 것을 나타낸다.StopIteration 함수에 호출되어 다음 값을 계속 되돌릴 수 있는 대상을 교체기라고 한다. next().Iterator를 사용하여 객체가 isinstance()인지 여부를 판단할 수 있습니다.
>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False


생성기는 모두 Iterator 대상이지만 Iterator, list, dictstr이지만 Iterable는 아니다.Iterator,list,dictstrIterable로 바꾸어 사용할 수 있는Iterator 함수:
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True


iter(),list,dict 등 데이터 유형이 str이 아니냐고 물어볼지도 몰라요.
파이톤의 Iterator 대상이 하나의 데이터 흐름을 표시하기 때문에 Iterator 대상은 Iterator 함수에 호출되어 다음 데이터를 되돌려주고 데이터가 없을 때까지 next() 오류를 던질 수 있기 때문이다.이 데이터 흐름을 질서정연한 서열로 볼 수 있지만 우리는 서열의 길이를 미리 알 수 없다. StopIteration 함수를 통해 필요에 따라 다음 데이터를 계산할 수 있기 때문에 next()의 계산은 타성이다. 다음 데이터를 되돌려야 할 때만 계산할 수 있다.Iterator는 심지어 무한한 데이터 흐름, 예를 들어 전체 자연수를 나타낼 수 있다.리스트를 사용하는 것은 전체 자연수를 영원히 저장할 수 없다.

소결

Iterator 순환에 작용할 수 있는 대상은 모두 for 유형이다.Iterable 함수에 작용할 수 있는 대상은 모두 next() 유형으로 타성 계산의 서열을 나타낸다.
집합 데이터 유형인 Iterator,list,dict 등은 str이지만 Iterable는 아니지만Iterator 함수를 통해 iter() 대상을 얻을 수 있다.
파이톤의 Iterator 순환은 본질적으로 끊임없이 호출for 함수를 통해 이루어진다. 예를 들어 다음과 같다.

좋은 웹페이지 즐겨찾기