我定义了一个列表 i,它是可迭代的。如代码所示,当调用 __iter __()方法时,将返回一个迭代器。但是,当我拨打下一个()方法四次时,它只打印四次,而不是1,2,3,4。当我将一个迭代器赋值给一个变量时发生了什么
>>> i=[1,2,3,4]
>>> i.__iter__
<method-wrapper '__iter__' of list object at 0x04040378>
>>> i.__iter__()
<listiterator object at 0x040561F0>
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
所以我做了什么打击:)
>>>ite=i.__iter__()
>>>ite.next()
1
>>>ite.next()
2
>>>ite.next()
3
>>>ite.next()
4
>>> ite.next()
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
ite.next()
StopIteration
有谁告诉我,这两种方式之间的区别? Tx很多:)
您在第一个版本中要求*四个迭代器*。 – user2357112
谢谢你。我知道了。 – yikayiyo