当我测试python Iterator
时,得到了一个非常奇怪的结果。
l = [1, 2, 3, 4, 5]
iterator = iter(l)
print(iterator)
iterator = iter(l)
print(iterator)
iterator = iter(l)
print(iterator)
iterator = iter(l)
print(iterator)
输出:
<list_iterator object at 0x10eebf748>
<list_iterator object at 0x10ef18eb8>
<list_iterator object at 0x10eebf748>
<list_iterator object at 0x10ef18eb8>
似乎我调用了iter()
4次,但依次却只能得到2个不同的Iterator
对象。
我叫了6次,还得到2个不同的物体。
我同时在以下两项上进行了测试:
达尔文上的Python 3.7.1 [Clang 10.0.0(clang-1000.11.45.5)]
Linux上的Python 3.6.5 [GCC 4.8.5 20150623(Red Hat 4.8.5-16)]
并获得相似的结果。
为什么iter()
依次返回2个对象?
IMO,每次我从iter()
调用generator
时,都会得到相同的Iterator
对象。相反,从Iterator
调用iter()
时,我将得到一个新的list
对象。
看来这是错误的,但是正确的答案是什么?