Python 반복자 : Python의 반복자는 무엇이며 어떻게 사용합니까?



Python 반복자에 대한이 블로그에서는 Python의 반복자 및 구현 방법에 대한 심층 연구를 수행 할 것입니다.

Python 프로그래밍 언어는 다음을 포함하여 혁신의 모든 측면을 확장했습니다. , , 등.이 위업의 여러 이유 중 하나는 Python Iterators와 같은 개념이며, 이와 같은 개념은 프로그래밍 언어로서 Python의 승리를위한 빌딩 블록입니다. 이 기사에서는 Python 반복기를 이해하기 위해 다음 개념을 살펴 봅니다.

반복자 대 반복자

Iterable 객체로 사용할 수있는 Python의 객체를 Iterable이라고합니다. 이것은 기본적으로 객체의 시퀀스가 ​​반복 될 수 있음을 의미합니다. 대부분의 Python 컬렉션은 명부 , , 튜플 , 세트 , 심지어 범위 Iterable로 취급 될 수 있습니다.





Python 반복 자란 무엇입니까?

파이썬 I 터 레이터 셀 수있는 수의 값을 포함하는 컨테이너입니다. 컨테이너의 값은 반복자 (특히 목록)를 사용하여 순회 할 수 있습니다.

순회 외에도 Iterator는 컨테이너의 데이터 요소에 대한 액세스를 제공하지만 자체적으로 수행하지는 않습니다.되풀이즉, 해당 개념이나 용어의 사소한 사용으로 상당한 자유를 얻지 못합니다. 이터레이터는데이터베이스 커서행동에. 다음은 Iterator의 간단한 예입니다. .



my_obj = { 'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

산출: Edureka

반복자는 'for in 루프'와 함께 사용할 수있는 모든 유형의 Python입니다.Iterator로 사용할 개체는 다음 메서드를 구현해야합니다.

파이썬의 반복자-Edureka



1. __iter __ ()

Iterator 초기화시 호출됩니다.next 또는 __next__ 메서드가있는 객체를 반환해야합니다.

2. __next __ ()

__init__ 파이썬

Iterator의 next 메서드는 Iterable의 다음 값을 반환합니다.

Iterator가 'for in'루프와 함께 사용되면 next ()가 암시 적으로 호출됩니다. Iterator 개체에. 이 메서드는 StopIteration을 사용하여 반복의 끝을 알려야합니다.이 두 가지 방법을 함께 반복자 프로토콜이라고합니다. 예제를 통해 for 루프가 Python에서 반복자 역할을하는 방법을 이해해 보겠습니다.

for i in object : print (i)

for 루프가 반복자로 작동하는 방법을 이해해 보겠습니다.

# iter_obj = iter (iterable) # 무한 루프 while True : try : # 다음 항목 가져 오기 element = next (iter_obj) # StopIteration을 제외한 요소로 작업 : # StopIteration이 발생하면 루프에서 중단 단절

이제 우리는 for 루프 반복자로 작동합니다. Python에서 사용자 지정 반복자를 구현하는 방법을 이해하겠습니다.

사용자 지정 반복자

이제 Python에서 사용자 지정 반복기를 구현하는 방법을 살펴 보겠습니다. 이를 이해하기 위해 예제를 사용합니다. 이 예에서는 __iter __ () 및 __next __ () 메서드를 구현합니다.

class MyNumbers : def __iter __ (self) : self.a = 1 return self def __next __ (self) : x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

산출: 하나

2

이제 사용자 지정 반복기를 구현하는 방법을 알았으므로 Python에서 무한 반복기를 살펴 보겠습니다.

무한 반복자

Iterator 개체의 항목이 항상 소진되어야하는 것은 아닙니다. 무한 반복자가있을 수 있습니다 (끝나지 않음). 다음은 무한 반복기를 보여주는 기본 예입니다.

내장 iter ()첫 번째 인수는 호출 할 수있는 객체 (함수)이고 두 번째 인수는 센티널 인 두 개의 인수로 호출 할 수 있습니다. Iterator는 반환 된 값이 센티널과 같아 질 때까지이 함수를 호출합니다.

이것을 이해하기 위해 예를 들어 보겠습니다.

class MyNumbers : def __iter __ (self) : self.a = 1 return self def __next __ (self) : x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

산출: 하나
2

4
5

위의 예에서 print 문을 계속 추가하는 한 실행이 계속됩니다. 무한 반복자를 중지하려면 stopIteration 문을 사용해야합니다.

StopIteration

반복이 영원히 진행되는 것을 막기 위해 StopIteration 문을 사용합니다. 몇 가지 예를 통해 이것을 이해합시다.

class MyNumbers : def __iter __ (self) : self.a = 1 return self def __next __ (self) : if self.a & ampamplt = 5 : x = self.a self.a + = 1 return x else : raise StopIteration myclass = MyNumbers () myiter = iter (myclass) for x in myiter : print (x)

산출: 하나
2

4
5

이제 조건이 거짓이면 실행이 else 블록으로 이동하고 반복이 중지됩니다. 이제 Python에서 반복자의 몇 가지 다른 예를 살펴 보겠습니다.

Python 반복기 예제

다음은 Python의 반복자의 몇 가지 예입니다.

my_obj = [ 'Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (next (iter_obj))

산출: Edureka

이 예제에서는 튜플을 반복 가능한 객체로 사용합니다.

my_obj = ( 'Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (next (iter_obj))

산출: Edureka

파이썬에서 문자열을 반복 가능한 객체로 사용할 수도 있습니다.

my_obj = 'Edureka'iter_obj = iter (my_obj) print (next (iter_obj))

산출: IS

이것으로 예제와 함께 Python 반복자를 사용하는 방법을 배운이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'Python Iterators'에 대한이 기사가 관련이있는 경우 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 당신의 여정의 모든 단계에서 당신을 돕고 싶어하는 학생과 전문가를 위해 설계된 커리큘럼을 마련하기 위해 여기 있습니다. . 이 과정은 Python 프로그래밍을 먼저 시작하고 다양한 Python 개념과 함께 핵심 및 고급 Python 개념을 교육하도록 설계되었습니다. 처럼

질문이 있으면 'Python Iterators'의 댓글 섹션에서 모든 질문을 자유롭게 물어보십시오. 저희 팀이 기꺼이 답변 해 드리겠습니다.