使用迭代器打印整数

pan*_*ami 5 python printing iterator list

我想要做的是在下面的代码中打印整数0到5,但我得到的只是迭代器的地址?

def main():

    l = []
    for i in range(0,5):
        l.append(i)

    it = iter(l)

    for i in range(0,5):
        print it
        it.next()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

Seb*_*olm 9

要访问迭代器返回的值,可以使用迭代器的next()方法,如下所示:

try:
    while True:
        val = it.next()
        print(val)
except StopIteration:
    print("Iteration done.")
Run Code Online (Sandbox Code Playgroud)

next()既有推进迭代器又返回下一个元素的目的.迭代完成后抛出StopIteration.

由于这非常麻烦,所以这一切都很好地包含在for-syntax中:

for i in it:
    print(i)
print("Iteration done.")
Run Code Online (Sandbox Code Playgroud)

更多链接: