[英]Python 3 itertools.islice continue despite UnicodeDecodeError
[英]itertools.islice does not advance iterator in python3
seq = 'abcdefghijklmn'
for i in itertools.islice(enumerate(seq), 2, 5):
print(i)
#(2, 'c')
#(3, 'd')
#(4, 'e')
for i in itertools.islice(enumerate(seq), 3, 4):
print(i)
#(3, 'd')
但是第二个for循环的预期结果应该是:
#(8, 'i')
为什么在第一次循环后没有枚举(seq)?
您每次都可以通过调用enumerate
重新创建生成器。
如果您在同一台发电机上工作,它将按预期方式前进。
>>> import itertools
>>> seq = "abcdefghijklmnop"
>>> gen = enumerate(seq)
>>> list(itertools.islice(gen, 3))
[(0, 'a'), (1, 'b'), (2, 'c')]
>>> list(itertools.islice(gen, 3))
[(3, 'd'), (4, 'e'), (5, 'f')]
>>> list(itertools.islice(gen, 3))
[(6, 'g'), (7, 'h'), (8, 'i')]
>>> _
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.