擅长:python、mysql、java
<p><strong>迭代</strong>是一个通用术语,用来表示一个接一个地获取某物的每一项。无论何时使用显式或隐式循环遍历一组项,即迭代。</p>
<p>在Python中,iterable和iterator有特定的含义。</p>
<p>iterable是一个具有<code>__iter__</code>方法的对象,该方法返回一个<strong>迭代器,或者定义一个<code>__getitem__</code>方法,该方法可以从零开始获取顺序索引(当索引不再有效时,引发一个<code>IndexError</code>)。因此<strong>iterable</strong>是一个可以从中获取<strong>迭代器的对象。</p>
<p>迭代器是具有<code>next</code>(Python 2)或<code>__next__</code>(Python 3)方法的对象。</p>
<p>每当在Python中使用<code>for</code>循环、或<code>map</code>或列表理解等时,都会自动调用<code>next</code>方法以从<strong>迭代器中获取每个项,从而经历<strong>迭代的过程。</p>
<p>开始学习的好地方是<a href="https://docs.python.org/3/tutorial/classes.html#iterators">iterators section of the tutorial</a>和<a href="https://docs.python.org/dev/library/stdtypes.html#iterator-types">iterator types section of the standard types page</a>。了解基本知识后,尝试<a href="https://docs.python.org/dev/howto/functional.html#iterators">iterators section of the Functional Programming HOWTO</a>。</p>