>백엔드 개발 >파이썬 튜토리얼 >Python에서 반복자를 어떻게 만들고 사용합니까?

Python에서 반복자를 어떻게 만들고 사용합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-29 17:33:11230검색

How Do I Create and Use Iterators in Python?

Python에서 반복자 생성

Python에서 반복자를 작성하려면 __iter__()와 __iter__() 및 두 가지 필수 메서드를 지정하는 반복자 프로토콜을 구현해야 합니다. __다음__(). 이러한 메서드는 객체가 일련의 값을 통해 초기화하고 반복할 수 있는 방법을 정의합니다.

반복자 프로토콜 이해

__iter__()에서는 반복자 객체가 반환됩니다. 일반적으로 루프 시작 시 암시적으로 호출됩니다. __next__()는 시퀀스의 다음 값을 반환하는 기본 메서드입니다. Python 2 사용자의 경우 이 메서드를 next()라고 합니다. 모든 값이 소진되면 __next__()는 반복 구문을 캡처하여 반복을 종료하는 StopIteration 예외를 발생시킵니다.

예: 카운터 반복자

간단한 지정된 범위 내에서 값을 생성하는 카운터 반복자:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration

# Usage:
for c in Counter(3, 9):
    print(c)

이렇게 하면 다음이 생성됩니다. 출력:

3
4
5
6
7
8

반복기에 생성기 사용

생성기는 반복기를 생성하기 위한 대체 메커니즘을 제공합니다. 생성기 함수는 한 번에 하나씩 값을 생성하여 반복자 프로토콜을 효과적으로 구현합니다.

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1

# Usage:
for c in counter(3, 9):
    print(c)

위 코드는 Counter 클래스와 동일한 출력을 생성합니다.

추가 리소스

반복자에 대한 포괄적인 이해를 위해서는 David Mertz의 기사 "Iterators and Simple"과 같은 리소스를 참조하세요. 발전기."

위 내용은 Python에서 반복자를 어떻게 만들고 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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