在下一个函数中使用iter函数

时间:2017-03-13 02:24:21

标签: python python-2.7 python-3.x next iterable

当我使用以下内容时:

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

1 个答案:

答案 0 :(得分:2)

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