홈>
이터레이터의 복사본을 느리게 (잠재적으로 많은 수의) 생성하는 이터레이터를 만들려고합니다. 가능합니까?
간단히 수행하여 고정 된 수의 사본을 만들 수 있음을 알고 있습니다
iter_copies = tee(my_iter, n=10)
하지만 n을 미리 알지 못하거나 n이 무한한 경우에는 고장입니다.
보통 나는 줄을 따라 무언가를 시도 할 것이다
def inf_tee(my_iter):
while True:
yield tee(my_iter)[1]
하지만 이터레이터에서 티를 사용한 후에는 원래 이터레이터를 더 이상 사용할 수 없으므로 문서가 작동하지 않습니다.
<시간>애플리케이션에 관심이있는 경우 : 게으른
unzip
기능으로 잠재적으로 pytoolz 에서 사용할 수 있습니다. 현재 구현은 유한 한 무한 반복자를 처리 할 수 있습니다 (일반
zip(*seq)
보다 낫습니다)
)이지만 무한 반복자가 아닙니다. 세부 사항에 관심이있는 경우 풀 요청 입니다.
-
답변 # 1
관련 자료
- 셀레늄과 단위 테스트를 사용하여 파이썬에서 테스트 보고서를 생성하는 방법은 무엇입니까?
- for 루프에서 파이썬 람다 필터 코드를 생성하는 방법은 무엇입니까?
- Python에서 반복자에서 문자열을 만드는 방법은 무엇입니까?
- 파이썬에서 12 자리 길이의 난수를 어떻게 생성합니까?
- Python에서 그리드 2D 그래프를 생성하는 방법은 무엇입니까?
- web scraping - requestspost ()에서 Python XHR 요청을 생성하는 방법
- bash - 모든 파일에 대해 디렉토리를 만들고 각 파일에 대해 "n"복사본을 생성합니다
- 파이썬은 3 개의 문자 조합을 모두 생성합니다
- python - xml 및 xslt 파일을 사용하여 xml 생성
- 파이썬에서 숫자 목록을 생성하는 방법
- 파이썬에서 행 순열의 모든 2D 배열을 생성하는 방법은 무엇입니까?
- Python의 Dictionary Comprehension (값이 키보다 알파벳 하나 앞에있는 알파벳 사전 생성)
이것은 Python 2
itertools
의 맨 아래 근처의 단일 예제에서만 거의 다루지 않습니다. 문서, 그러나itertools.tee
복사 지원 :문서의 예제는 실제로
__copy__
를 사용합니다copy.copy
를 사용자 정의하는 데 사용되는 후크 인 마술 방법 행동. (물론tee.__copy__
복사 할 수없는 반복자 프로젝트의 일부로 추가되지 않았습니다.)원래 이터레이터에서 생성 된 모든 요소를 저장해야하므로 비용이 많이 듭니다. 이 비용을 피할 방법이 없습니다.