Par*_*and 10 python iterator list-comprehension stopiteration
我想从csv文件中读取最多20行:
rows = [csvreader.next() for i in range(20)]
Run Code Online (Sandbox Code Playgroud)
如果文件有20行或更多行,则工作正常,否则失败并出现StopIteration异常.
有没有一种优雅的方法来处理迭代器,它可以在列表解析中抛出StopIteration异常,还是应该使用常规for循环?
Aym*_*ieh 13
你可以用itertools.islice
.它是列表切片的迭代器版本.如果迭代器的元素少于20个,则返回所有元素.
import itertools
rows = list(itertools.islice(csvreader, 20))
Run Code Online (Sandbox Code Playgroud)