Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

제너레이터를 사용하여 Python에서 반복자를 만들 수 있습니까?

<시간/>

, 파이썬에서 반복자를 사용하여 생성기를 만들 수 있습니다. 반복자를 만드는 것은 쉽습니다. 키워드 yield 문을 사용하여 생성기를 만들 수 있습니다.

Python 생성기는 반복자를 생성하는 쉽고 간단한 방법입니다. 반복자처럼 작동하는 함수를 선언하는 데 주로 사용됩니다.

생성기는 일상 생활에서 한 번에 하나의 값을 반복할 수 있는 함수이며 모든 프로그래머는 목록, 문자열 및 Dict 등과 같은 반복 가능한 개체를 사용할 것입니다.

반복자는 반복을 통해 반복할 수 있는 개체입니다.

다음 예제는 Generator가 Python에서 Yield 문을 도입하여 값을 반환하는 것처럼 작동함을 보여줍니다.

def generator():
   print("program working sucessfully")
   yield 'x'
   yield 'y'
   yield 'z'
generator()

출력

<generator object generator at 0x000000CF81D07390>

for 루프를 사용하여 생성기를 만들 수도 있습니다.

for i in generator():
print(i)

출력

program working sucessfully
x
y
z


반복자 객체는 두 가지 방법을 지원합니다. 1.__iter__method 및 2.__next__메서드

__iter__ 메서드는 반복자 객체 자체를 반환합니다. 주로 for 루프와 in 문에 사용됩니다.

__next__ 메서드는 더 이상 반환되는 항목이 없으면 반복기에서 다음 값을 반환하며 StopIteration 예외가 발생해야 합니다.

class function(object):
   def __init__(self, lowtemp, hightemp):
      self.current = lowtemp
      self.high = hightemp
   def __iter__(self):
      'Returns itself as an iterator object'
      return self
   def __next__(self):
      'Returns the next value till current is lower than high'
      if self.current > self.high:
         raise StopIteration
      else:
         self.current += 1
         return self.current - 1
c = function(3,20)
for i in c:
print(i, end=' ')

출력

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20