728x90
반응형

iterator 4

파이썬 생성기와 반복기의 차이점

질문 : 파이썬 생성기와 반복기의 차이점 반복기와 생성기의 차이점은 무엇입니까? 각 사례를 사용하는 경우에 대한 몇 가지 예가 도움이 될 것입니다. 답변 iterator 는 좀 더 일반적인 개념입니다 : 클래스에 __next__ 메서드 (파이썬 2의 next return self __iter__ 메서드가있는 모든 객체입니다. 모든 생성기는 반복자이지만 그 반대는 아닙니다. yield 표현식 (Python 2.5 및 이전 버전의 yield 문)이있는 함수를 호출하여 빌드되며 iterator 정의를 충족하는 객체입니다. __next__ (및 __iter__ 및 __init__ ) 이외의 다른 메서드를 노출하려는 경우 생성기보다는 사용자 지정 반복기를 사용할 수 있습니다. 대부분의 경우 제너레이터 (때로는 충..

두개의 list를 병렬로 반복하는 방법

질문 : 두 목록을 병렬로 반복하는 방법은 무엇입니까? 파이썬에 두 개의 반복 가능 항목이 있으며 쌍으로 살펴보고 싶습니다. foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print("f: ", f, "; b: ", b) 결과는 다음과 같습니다. f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 이를 수행하는 한 가지 방법은 인덱스를 반복하는 것입니다. for i in range(len(foo)): print("f: ", foo[i], "; b: ", bar[i]) 그러나 그것은 나에게 다소 비정상적인 것처럼 보입니다. 더 나은 방법이 있습니까? 답변 Python 3 for f, b in zip(foo, bar): ..

개발관련/other 2021.11.01

Python 반복 함수를 생성하는 방법

질문 : 기본 Python 반복기 빌드 파이썬에서 반복 함수 (또는 반복기 객체)를 어떻게 생성할까요? 답변 파이썬의 반복자 객체는 반복자 프로토콜을 __iter__() 및 __next__() 두 가지 메서드를 제공한다는 것을 의미합니다. __iter__ 는 반복기 객체를 반환하며 루프 시작시 암시 적으로 호출됩니다. __next__() 메서드는 다음 값을 반환하며 각 루프 증분에서 암시 적으로 호출됩니다. 이 메서드는 반환 할 값이 더 이상 없을 때 StopIteration 예외를 발생시킵니다.이 예외는 반복을 중지하기 위해 반복 구조를 통해 암시 적으로 캡처됩니다. 다음은 카운터의 간단한 예입니다. class Counter: def __init__(self, low, high): self.curren..

iterator를 스트림으로 변환하는 방법

질문 : 반복기를 스트림으로 변환하는 방법은 무엇입니까? Iterator 를 Stream 으로 변환하거나보다 구체적으로 iterator를 스트림으로 "보기"하는 간결한 방법을 찾고 있습니다. 성능상의 이유로 새 목록에서 반복자의 복사본을 피하고 싶습니다. Iterator sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection copyList = new ArrayList(); sourceIterator.forEachRemaining(copyList::add); Stream targetStream = copyList.stream(); 의견의 몇 가지 제안을 기반으로 Stream.generate 를 사용하려고 시도했습니다. public sta..

개발관련/other 2021.08.28
728x90
반응형