常规思维下对迭代器的切片
实际上迭代器是不能像列表一样进行切片的
def count(n):
while True:
yield n
n += 1
counter = count(0)
print(counter[10:20])
#执行结果如下列打印,生成器是不可以被切片的。
'''
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/Training/venv/ForBlog/迭代器切片.py", line 8, in <module>
print(counter[10:20])
TypeError: 'generator' object is not subscriptable
Process finished with exit code 1
'''
解决方案
使用itertools则可以调用islice进行切片的操作
import itertools
def count(n):
while True:
yield n
n += 1
counter =count(0)
for i in itertools.islice(counter, 10, 20):
print(i)
#输出结果如下列打印所示
10
11
12
13
14
15
16
17
18
19
Process finished with exit code 0