>  기사  >  백엔드 개발  >  Python 기본 반복자 및 생성기

Python 기본 반복자 및 생성기

高洛峰
高洛峰원래의
2017-03-27 16:41:011989검색

Iterator 및 Generator


1. Iterator

Iterator는 다음을 수행하는 방법입니다. 컬렉션 요소에 액세스합니다. 반복기 개체는 모든 요소에 액세스할 때까지 컬렉션의 첫 번째 요소부터 액세스하기 시작합니다. 반복자는 앞으로만 갈 수 있고 뒤로는 갈 수 없지만 사람들이 반복하는 동안 뒤로 가는 경우는 거의 없기 때문에 괜찮습니다. 또한, 반복자의 가장 큰 장점 중 하나는 전체 반복 프로세스를 위해 모든 요소를 ​​미리 준비할 필요가 없다는 것입니다. 반복자는 반복할 때만 요소를 계산하며, 그 전후에는 요소가 존재하지 않거나 소멸될 수 있습니다. 이 기능은 여러 G 파일과 같은 거대하거나 무한한 컬렉션을 탐색하는 데 특히 적합합니다.

기능:

  1. 방문자는 iterator의 내부 구조에 신경 쓸 필요가 없으며 next() 메서드를 통해 다음 콘텐츠를 지속적으로 가져오기만 하면 됩니다

  2. 할 수 없습니다. 무작위 컬렉션에 있는 값에 접근하려면 처음부터 끝까지 순차적으로만 접근할 수 있습니다

  3. 중간 접근하면 돌아갈 수 없습니다

  4. 상대적으로 큰 데이터 세트를 쉽게 반복하고 메모리를 절약할 수 있습니다


>>> a = iter([1,2,3,4,5])
>>> a
<list_iterator object at 0x101402630>
>>> a.__next__()
1
>>> a.__next__()
2
>>> a.__next__()
3
>>> a.__next__()
4
>>> a.__next__()
5
>>> a.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

2. 생성기

함수가 호출되면 반복자를 반환하며, 함수에 Yield가 포함되어 있으면 이 함수를 생성기라고 합니다.


def func():
    yield 1
    yield 2
    yield 3
    yield 4

위 코드에서 func는 생성기라고 불리는 함수이고, 이 함수가 func일 때 ()가 실행되면 반복자를 얻게 됩니다.


rree

3. 예시

a. 🎜>


>>> temp = func()
>>> temp.__next__()
1
>>> temp.__next__()
2
>>> temp.__next__()
3
>>> temp.__next__()
4
>>> temp.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

b. 범위에 액세스하려면 반복자를 사용하세요

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.