以下是Jean對我的問題的回答:Python converting strings in a list to numbers,運行以下最小代碼時出現StopIteration
異常。python帶有生成器和列表的StopIteration
primes
和z2
是空的。
從谷歌搜索我想我可能需要一個while循環周圍的追溯線,但我不知道如何補救?
回溯:在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()'。 –