在 next 函数中使用 iter 函数
Using iter function inside next function
当我使用以下内容时:
s = 'hello'
for i in range(0,len(s)):
print next(iter(s))
代码只打印了五次 h
。
但是当:
s = 'hello'
s_iterable = iter(s)
for i in range(0,len(s)):
print next(s_iterable)
打印来自 hello
的所有字母。
如果 iter(s)
和 s_iterable
都是迭代器对象,为什么它们给我不同的结果?
在第一个中,您在循环中重复调用 iter
。当您调用 iter(s)
时,它会为字符串创建一个新迭代器,并且该新迭代器从头开始。一次又一次从头开始是没有意义的。这就是为什么您只能打印出 h
的原因。
当我使用以下内容时:
s = 'hello'
for i in range(0,len(s)):
print next(iter(s))
代码只打印了五次 h
。
但是当:
s = 'hello'
s_iterable = iter(s)
for i in range(0,len(s)):
print next(s_iterable)
打印来自 hello
的所有字母。
如果 iter(s)
和 s_iterable
都是迭代器对象,为什么它们给我不同的结果?
在第一个中,您在循环中重复调用 iter
。当您调用 iter(s)
时,它会为字符串创建一个新迭代器,并且该新迭代器从头开始。一次又一次从头开始是没有意义的。这就是为什么您只能打印出 h
的原因。