对迭代器进行切片
對迭代器進行切片
直接對迭代器進行切片是不能完成的,例如
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
總結
- 上一篇: 算法导论之红黑树的学习
- 下一篇: rewirte 规则