Python 반복자 정의 및 간단한 사용 분석

不言
풀어 주다: 2018-05-02 15:41:38
원래의
1551명이 탐색했습니다.

이 글은 주로 Python Iterator의 정의와 간단한 사용법을 소개하고, Iterator의 개념, 원리, 생성 및 사용법을 예제 형식으로 분석합니다. 도움이 필요한 친구들이 참고할 수 있습니다

이 글의 예제에서는 정의와 Python 반복자 사용의 단순성. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. 반복자란 무엇인가요?

이름에서 알 수 있듯이 반복은 무언가를 여러 번 반복하는 것입니다(지금 루프에서 수행되는 것과 같습니다). ). 반복자는 __next__() 메서드를 구현하는 객체입니다(이 메서드는 호출 시 매개변수가 필요하지 않습니다). 이는 반복 가능한 시퀀스에 액세스하는 방법입니다. 일반적으로 모든 요소가 종료될 때까지 시퀀스의 첫 번째 요소부터 액세스를 시작합니다. 모든 요소에 액세스했습니다. [참고]: 반복자는 앞으로만 이동할 수 있으며 뒤로는 이동할 수 없습니다

[반복자의 장점]:

반복자를 사용한다고 해서 전체 반복 프로세스의 모든 요소를 ​​미리 준비할 필요는 없습니다. 반복자는 반복할 때만 요소를 계산하며, 요소는 존재하지 않거나 전후에 파괴될 수 있습니다. 따라서 반복자는 거대하거나 무한한 시퀀스를 탐색하는 데 적합합니다.代 2. 반복자를 생성하고

A 및 내장 팩토리 함수 사용 Iteraable은 반복 시퀀스를 반복자로 변환할 수 있습니다.

a=[1,2,3,4]
b=(1,2,3)
str='Tomwenxing'
print(iter(a))
print(iter(b))
print(iter(str))
로그인 후 복사

실행 결과:

& lt; Listitrator Object at 0x0000000001D6D550 & GT ;

< 0x0000000001D6D550의 tupleiterator 객체>

<0x0000000001D6D550의 iterator 객체> )메서드는 모두 다음 요소를 반환하거나 StopIteration 컨테이너 객체를 발생시킵니다

•Python에는 "iterator" 클래스가 없으므로 클래스는 다음 두 가지 특성을 갖습니다. "반복자" 클래스라고 부를 수 있습니다:

 1. 컨테이너의 다음 요소를 반환하거나 StopIteration 예외를 발생시키는 __next__() 메서드가 있습니다

2. 가 있습니다 __iter__() 메서드, 반복자 자체를 반환합니다

#斐波那契数列
class Fabs():
  def __init__(self,max):
    self.max=max
    self.n,self.a,self.b=0,0,1
  def __iter__(self):#定义__iter__方法
    return self
  def __next__(self):#定义__next__方法
    if self.n<self.max:
      tmp=self.b
      self.a,self.b=self.b,self.a+self.b
      #等价于:
      #t=(self.a,self.a+self.b)
      #self.a=t[0]
      #self.b=t[1]
      self.n+=1
      return tmp
    raise StopIteration
print(Fabs(5))
for item in Fabs(10):
  print(item,end=&#39; &#39;)
로그인 후 복사
작업 결과 :

<__main__.Fabs 0x00000000023F9278>__next__()方法都返回下一个元素或抛出StopIteration的容器对象

•由于Python中没有“迭代器”这个类,因此具有以下两个特性的类都可以称为“迭代器”类:

  1、有__next__()方法,返回容器的下一个元素或抛出StopIteration异常

  2、有__iter__()1 1 2 3 5 8 13 21 34 55

3. Iterator 메소드


1.iter.__next__(): iterator를 반환합니다. 다음 요소가 있지만 다음 요소가 없는 경우 StopIteration 예외가 발생합니다.

list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
로그인 후 복사
작업 결과:

Traceback(가장 최근 호출 last): 파일 "E:py3DemoHelloiterDemo.py", 7행, <모듈>

        print(list.__next__())

StopIteration

1
2

3
4



2.iter.__iter__( ): 반복자 객체 자체를 반환합니다

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())
로그인 후 복사
실행 결과:

관련 권장 사항:

next() 사용 예 파이썬 반복자

위 내용은 Python 반복자 정의 및 간단한 사용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿