반복기의 여러 인덱스 위치에서 여러 임의의 값을 가져 오는 방법은 무엇입니까?Python의 생성기에서 여러 개의 개별 값 가져 오기
How to get the n next values of a generator in a list (python) 및 Get the nth item of a generator in Python 반복자에서 임의의 요소 또는 연속적인 서브 세트를 복용 itertools.islice
의 사용을 설명한다. 하지만 반복자의 다른 위치에서 여러 개의 임의의 요소를 원한다면 어디에서 islice
의 단계 인수를 사용할 수 없습니까?
저는 프로젝트 오일러의 problem 40을 해결하려고합니다. 지금 내가 인덱스 1, 10, 100, 1000, 10000, 100000과 요소를 얻으려면
iteration = (i for i in ''.join(map(str, (i for i in xrange(1,10**6)))))
와 연결된 정수의 문자열을 생성, 내가 여기 islice
를 사용하지 수 1에서 1000000 계산 때문에 next
을 호출 할 때마다 현재 값이 오른쪽으로 이동합니다. 예를 들어
next(islice(iteration, 1, 2)) + next(islice(iteration, 3, 4))
은 '24'대신 '26'을 생성합니다.
업데이트 (25.11.12, 세계 협정시 04시 43분 + 0) : 모든 제안
감사합니다.
가it = (i for i in ''.join(map(str, (i for i in xrange(1,10**6)))))
ds = [int(nth(it, 10**i-10**(i-1)-1)) for i in range(7)]
return product(ds)
nth
의 추한 인수가 0, 8, 89, 899, 8999 등
현재 코드의 한 가지 문제점은 느리게 숫자를 생성하지 않는다는 것입니다 (예를 들어 '10 ** 6'을 '10 ** 7'로 변경). - '' '.join'은 통과했다. – DSM