擅长:python、mysql、java
<p>不,第二种格式完全不同。在</p>
<p><code>for</code>循环对to循环覆盖序列调用<code>iter()</code>,并对结果使用<code>next()</code>调用。它相当于:</p>
<pre><code>iterable = iter(cases):
while True:
try:
case = next(iterable)
except StopIteration:
break
# blah
</code></pre>
<p>对列表调用<code>iter()</code>的结果是一个列表迭代器对象:</p>
^{pr2}$
<p>此对象保留对原始列表的引用并跟踪其所在的索引。该索引从0开始递增,直到列表被完全迭代为止。在</p>
<p>不同的对象可以返回具有不同行为的不同迭代器。如果混入了线程,最终可能会用其他东西替换<code>cases</code>,但迭代器仍然会引用旧序列。在</p>