python-3.x 在next函数中使用iter函数[重复]

n3schb8v  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(85)

此问题已在此处有答案

generator keeps returning the same value(2个答案)
6年前关闭。
当我使用以下命令时:

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都是迭代器对象,为什么它们会给予不同的结果?

tgabmvqs

tgabmvqs1#

在第一个例子中,你在循环中反复调用iter。当你调用iter(s)时,它为字符串创建了一个新的迭代器,这个新的迭代器从头开始。一遍又一遍地从头开始是没有意义的。这就是为什么你只能打印出h

相关问题