13 함수 진급---교체기
일류는 집합 데이터 형식, 예를 들어list,tuple,dict,set,str 등이다.
한 종류는generator입니다. 생성기와 yield가 있는generator function을 포함합니다.
for 순환에 직접적으로 작용할 수 있는 대상을 일괄적으로 교체 가능한 대상: Iterable라고 부른다.
isinstance()를 사용하여 객체가 Iterable 객체인지 여부를 판단할 수 있습니다.
>>> 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
생성기는 for 순환에 작용할 뿐만 아니라, 넥스트 () 함수에 의해 끊임없이 호출되어 다음 값을 되돌릴 수 있으며, 마지막에 StopIteration 오류가 발생하여 다음 값을 되돌릴 수 없다는 것을 나타낼 때까지 되돌릴 수 있다.
*next () 함수에 호출되어 다음 값을 계속 되돌릴 수 있는 대상을 교체기: Iterator라고 합니다.
isinstance()를 사용하여 개체가 Iterator 개체인지 여부를 판단할 수 있습니다.
>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False
생성기는 모두 Iterator의 대상이지만list,dict,str는 Iterable이지만 Iterator가 아니다.
list, dict,str 등의 Iterable를 Iterator로 변환하려면 iter () 함수를 사용할 수 있습니다.
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True
왜list,dict,str 등 데이터 형식이 Iterator가 아니냐고 물어볼 수도 있습니다.
이는 파이톤의 Iterator 대상이 하나의 데이터 흐름을 나타내기 때문에 Iterator 대상은next () 함수에 호출되어 다음 데이터를 계속 되돌려주고 데이터가 없을 때까지StopIteration 오류를 던질 수 있기 때문이다.이 데이터 흐름을 질서정연한 서열로 볼 수 있지만, 우리는 서열의 길이를 미리 알 수 없고,next () 함수를 통해 필요에 따라 다음 데이터를 계산할 수 있기 때문에 Iterator의 계산은 타성적이며, 다음 데이터를 되돌려야 할 때만 계산할 수 있다.
Iterator는 전체 자연수와 같은 무한한 데이터 흐름을 나타낼 수 있다.리스트를 사용하는 것은 전체 자연수를 영원히 저장할 수 없다.
소결
for 순환에 작용할 수 있는 모든 대상은 Iterable 유형이다.
넥스트 () 함수에 작용할 수 있는 대상은 모두 Iterator 형식으로 타성 계산의 서열을 나타낸다.
집합 데이터 형식인list, dict,str 등은 Iterable이지만 Iterator는 아니지만 iter () 함수를 통해 Iterator 대상을 얻을 수 있습니다.
Python3의 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.