>백엔드 개발 >파이썬 튜토리얼 >Python 반복자란 무엇이며 사용 방법

Python 반복자란 무엇이며 사용 방법

PHPz
PHPz앞으로
2023-05-12 13:19:061146검색

Python Iterators

반복자는 셀 수 있는 수의 값을 포함하는 객체입니다.

Iterator는 반복 가능한 객체이므로 모든 값을 반복할 수 있습니다.

기술적으로 Python에서 반복자는 iter() 및 next() 메서드를 포함하는 반복자 프로토콜을 구현하는 개체입니다.

Iterator VS Iterable 객체(Iterable)

목록, 튜플, 사전 및 세트는 모두 반복 가능한 객체입니다. Iterator를 얻을 수 있는 반복 가능한 컨테이너입니다.

이러한 모든 개체에는 반복자를 가져오는 iter() 메서드가 있습니다.

인스턴스

튜플에서 반복자를 반환하고 각 값을 인쇄합니다.

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

인스턴스 실행

apple
banana
cherry

Even 문자열 둘 다 반복 가능한 개체이며 반환할 수 있습니다. 반복자:

Instances

문자열도 일련의 문자를 포함하는 반복 가능한 객체입니다.

mystr = "banana"
myit = iter(mystr)

print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

실행 인스턴스

b
a
n
a
n
a

반복 반복자

for 루프는 반복 가능한 객체를 반복합니다.

인스턴스

튜플 값 반복:

mytuple = ("apple", "banana", "cherry")

for x in mytuple:
  print(x)

인스턴스 실행

python_iterator_loop_1.py
apple
banana
cherry

인스턴스

문자열의 문자 반복:

mystr = "banana"

for x in mystr:
  print(x)

인스턴스 실행

python_iterator_loop_2.py
b
a
n
a
n
a

팁: for 루프는 실제로 반복자 객체를 생성합니다. 그리고 각 루프에 대해 next() 메서드를 실행합니다.

반복자 만들기

객체/클래스를 반복자로 생성하려면 객체에 대해 iter() 및 next() 메서드를 구현해야 합니다.

Python 클래스/객체 장에서 배운 것처럼 모든 클래스에는 객체를 생성할 때 일부 초기화를 수행할 수 있는 init()라는 함수가 있습니다.

iter() 메서드도 비슷하게 작동합니다. 작업(초기화 등)을 수행할 수 있지만 항상 반복자 개체 자체를 반환해야 합니다.

next() 메서드를 사용하면 작업을 수행할 수도 있으며 시퀀스의 다음 항목을 반환해야 합니다.

Instance

숫자를 반환하는 반복자를 만듭니다. 1부터 시작하여 각 시퀀스는 1씩 증가합니다(1, 2, 3, 4, 5 등을 반환).

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))

인스턴스 실행

python_iterator_create_1.py
1
2
3
4
5

StopIteration

next() 문이 충분하거나 for 루프 내에서 사용하면 위의 예는 영원히 계속됩니다.

반복이 영원히 걸리는 것을 방지하려면 StopIteration 문을 사용할 수 있습니다.

next() 메서드에서 반복이 지정된 횟수만큼 완료되면 오류를 발생시키는 종료 조건을 추가할 수 있습니다.

Instance

20회 반복 후 중지:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)

인스턴스 실행

python_iterator_create_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

위 내용은 Python 반복자란 무엇이며 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제