直接对迭代器进行切片是不能完成的,例如 此时会报错,那么如果确实需要对迭代器进行切片呢? 但是一定要注意,islice会将前面已经迭代的项消耗掉,类似于文件中的指针,当迭代到某一个地方,seek的位置是改变了的 例如,如果紧接着上面的运行结束后,再次运行下面的代码,继续迭代l, 它是紧接着刚才的迭代 ...
分类:
其他好文 时间:
2017-06-11 16:26:10
阅读次数:
121
1.迭代器切片函数itertools.islice()正好适用于在迭代器和生成器上做切片操作。这里要着重强调的一点是islice()会消耗掉传入的迭代器中的数据。必须考虑到迭代器是不可逆的这个事实。2.跳过可迭代对象的开始部分itertools模块中有一些函数可以完成这个任务。首先介绍的是iterto..
分类:
其他好文 时间:
2016-12-25 02:24:37
阅读次数:
198
一、反向迭代:reversed() #反向迭代只有在待处理的对象具有确定的大小或者对象实现了__reversed()__特殊方法时才能奏效,否则必须先将对象转化为列表(可能消耗大量内存) 二、迭代器切片:itertools.islice #迭代器和生成器无法进行普通的切片操作(其长度不确定且没有实现 ...
分类:
编程语言 时间:
2016-08-11 17:37:50
阅读次数:
169
Python编程时,经常需要跳过第一行读取文件内容。比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作。相应的Python代码如下:
input_file = open("C:\\Python34\\test.csv")
line_num = 0
for line in islice(input_file, 1, None):
line...
分类:
编程语言 时间:
2015-06-15 13:10:50
阅读次数:
630
itertools是python内置的一个迭代器工具模块,提供很多方法,创建各种各样的迭代器。python文档中写着,该模块式python2.3引入的,基本常用的python的解释器都是python2.4之后的。所以,基本不会遇上没有提供支持的情况。下面主要介绍常用的三个:islice():一个迭代...
分类:
其他好文 时间:
2014-05-09 13:07:41
阅读次数:
340