itertools.islice在python3中不推进迭代器
但是第二个for循环的预期结果应该是:itertools.islice在python3中不推进迭代器,python,python-3.x,Python,Python 3.x,但是第二个for循环的预期结果应该是: 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') 为什么枚
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')
为什么枚举(seq)在第一个循环之后没有被提升?您每次都通过调用
enumerate
重新创建生成器
如果在同一个生成器上工作,它将按预期进行
#(8, 'i')
每次通过调用
enumerate
重新创建生成器
如果在同一个生成器上工作,它将按预期进行
#(8, 'i')
您的两个示例都在itertools.islice(enumerate(a),2,5)中为i提供了
,
-您可以使用您运行的代码吗?您在哪里定义a
?为什么希望两个相同的代码片段产生不同的结果?您的两个示例都在itertools.islice(enumerate(a),2,5)中为i提供了
-请您使用运行的代码。您在哪里定义a
?为什么希望两个相同的代码片段产生不同的结果?