欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

对迭代器进行切片

发布时间:2025/7/14 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 对迭代器进行切片 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
对迭代器进行切片

直接对迭代器进行切片是不能完成的,例如

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/11from itertools import islicel = 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)

 

它是紧接着刚才的迭代结束位置迭代的,看上去就像将之前的结果消耗掉了。

 

posted on 2017-06-11 15:18 Andy_963 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Andy963/p/6985287.html

总结

以上是生活随笔为你收集整理的对迭代器进行切片的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。