与python列表混淆:它们是迭代器还是不是迭代器?
我正在研究Alex Marteli的《 Nutshell》中的Python,该书建议具有next()方法的任何对象都是(或至少可以用作)迭代器。它还建议大多数迭代器是通过对称为的方法的隐式或显式调用构建的iter。 阅读本书中的内容后,我感到有尝试的渴望。我启动了python 2.7.3解释器并执行以下操作: >>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for number in range(0, 10): ... print x.next() 但是结果是这样的: Traceback (most recent call last): File "<stdin>", line 2, in <module> AttributeError: 'list' object has no attribute 'next' 在混乱中,我尝试通过研究x对象的结构,dir(x)并发现它具有一个__iter__功能对象。因此,我弄清楚了它可以用作迭代器,只要它支持该类型的接口即可。 因此,当我再次尝试时,这次稍有不同,尝试这样做: >>> _temp_iter …