다음 질문에 대한 Jean의 대답에 따라 Python converting strings in a list to numbers에 최소한의 코드를 실행하면 StopIteration
예외가 발생합니다.생성기 및 목록을 사용하여 Python StopIteration
primes
및 z2
은 비어 있습니다.
인터넷 검색에서 추적 할 때 회선 주위에 루프가 필요할 수 있다고 생각하지만 해결 방법을 모르겠습니까?
역 추적 : CSV 파일에서
File "factorise_v32.py", line 118, in factorise
primes=[next(z2) for _ in xrange(b)]
StopIteration
샘플 데이터 :
("2","3","5","7","11")
최소 코드 :
import csv
def factorise(N)
....
z1=(int(x) for row in csv.reader(csvfile) for x in row)
....
b=4 #b can be any positive integer
z2=(int(x) for row in csv.reader(csvfile) for x in row)
primes=[next(z2) for _ in xrange(b)]
'next()'는'z2'가 없어지기 때문에 예외를 발생시킵니다. 'z2'에는'b' 요소가 없습니다. –
@MartijnPieters 'StopIteration'은 이해를 종료하기 위해 처리되지 않겠습니까? – schwobaseggl
'z2'를 반복 * 왜 *하지 않습니까? 리스트 이해력으로 만들거나 제한된 수의 요소를 얻으려면'slice()'를 사용하십시오. –