Python에서 반복자는 목록이나 튜플과 같은 일련의 값을 반복할 수 있게 해주는 객체입니다. __iter__() 및 __next__()라는 두 가지 메서드를 구현하여 작동합니다. __iter__() 메서드는 반복자 객체 자체를 반환하는 반면, __next__() 메서드는 시퀀스의 다음 값을 반환합니다. 더 이상 반환할 값이 없으면 StopIteration 예외가 발생합니다.
class Squares: def __init__(self, n): self.n = n self.current = 0 def __iter__(self): return self def __next__(self): if self.current >= self.n: raise StopIteration else: result = self.current ** 2 self.current += 1 return result # Using the iterator squares = Squares(5) for square in squares: print(square)
Python에서 iter()는 주어진 반복 가능 객체에 대한 반복자를 반환하는 내장 함수입니다.
반복 가능한 객체는 목록, 튜플, 집합, 사전 또는 __iter__() 메서드를 정의하는 사용자 정의 객체와 같이 반복될 수 있는 모든 객체입니다.
iter()가 반복 가능한 객체에서 호출되면 iterable 객체의 값 시퀀스를 한 번에 하나씩 제공하기 위해 next() 메서드를 사용하여 반복자 객체를 반환합니다.
iter() 함수는 루프 및 기타 반복기와 함께 시퀀스 요소 필터링, 매핑 및 축소와 같은 작업을 수행하는 데 자주 사용됩니다.
numbers = [1, 2, 3, 4, 5] iterator = iter(numbers) print(next(iterator)) # Output: 1 print(next(iterator)) # Output: 2 print(next(iterator)) # Output: 3
"게으른 반복자"는 시퀀스의 모든 값을 미리 생성하지 않는 특별한 유형의 반복자입니다. 대신 필요할 때 생성합니다. 이는 모든 값을 한 번에 생성하고 많은 메모리를 소비하는 것을 방지하므로 매우 크거나 무한한 시퀀스를 처리할 때 유용합니다.
Python에서 게으른 반복자는 생성기 함수를 사용하여 구현되는 경우가 많습니다(생성기는 항복 키워드를 사용하는 함수입니다). 한 번에 하나의 값을 반환합니다. 값이 요청될 때마다 생성기는 중단된 부분부터 시작하여 시퀀스의 다음 값을 생성합니다.
아아아아위 내용은 Python에서 Iterator와 "Lazy Iterator"의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!