首页 > 代码库 > 对迭代器进行切片
对迭代器进行切片
直接对迭代器进行切片是不能完成的,例如
l=range(20) l= iter(l) l1=l[5:10] #TypeError: ‘range_iterator‘ object is not subscriptable
此时会报错,那么如果确实需要对迭代器进行切片呢?
#!/usr/bin/env python #coding:utf-8 #@Author:Andy # Date: 2017/6/11 from itertools import islice l = range(20) l = iter(l) t = islice(l,5,10) # 第一个参数指定迭代对象,后面分别为起始,终止,步长 for i in t: print(i)
但是一定要注意,islice会将前面已经迭代的项消耗掉,类似于文件中的指针,当迭代到某一个地方,seek的位置是改变了的
例如,如果紧接着上面的运行结束后,再次运行下面的代码,继续迭代l,
for j in l: print(j)
它是紧接着刚才的迭代结束位置迭代的,看上去就像将之前的结果消耗掉了。
对迭代器进行切片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。