苏州做网站哪家比较好,外贸免费建设网站制作,沙漠风网站建设怎么样,哪个地方可学习网站建设如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容#xff0c;我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getItem__方法 可以通过file.readlines()后再做切片#xff0c;内存会加载整个文… 如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getItem__方法 可以通过file.readlines()后再做切片内存会加载整个文件到内存如果文件太大会浪费内存空间 解决思路 使用itertools.isslice,它能返回一个迭代器对象切片的生成器 代码 from itertools import islice
f open(test.txt)
for line in islice(f, 100-1, 300):print(line) 前面100行也要读进来 自己实现一个islice from itertools import islice
def my_islice(iterable, start, end, step1):tmp 0for i, x in enumerate(iterable):if i end:breakif i start:if tmp 0:tmp stepyield xtmp - 1print(list(my_islice(range(100, 150), 10, 20, 3)))
print(list(islice(range(100, 150), 10, 20, 3))) 转载于:https://www.cnblogs.com/marton/p/10772174.html