<p>你需要记住两件事:</p>
<ol>
<li><p>因为Python是弱类型语言,所以不需要显式地将任何变量声明为某个对象类型。这是你已经知道的,为什么你可以分配的东西,而不必说明他们将是什么类型。</p></li>
<li><p>For循环构造在后台做了很多你看不到的事情。这意味着,尽管看起来没有任何东西被定义,但它是。</p></li>
</ol>
<p>记住这一点,我不想真正解释for循环是如何工作的,因为<a href="https://stackoverflow.com/a/10440676/5323213">there are already answers available for that</a>但要点是python中的for循环与下面的伪代码相同。你知道吗</p>
<pre><code>#set up your iterable
demond = SOME_ITERABLE_OBJECT (this can be a list, string, dict, etc)
#this
for i in demond:
do_something(i)
#is the same as this
i = demond[0] # the first item in demond
do_something(i)
i = demond[1] # the second item in demond
do_something(i)
i = demond[2]
...
...
..
i = demond[n] # the last item in demond
do_something(i)
</code></pre>
<p>接下来的问题可能是:是什么使它在代码中<code>for i in demond</code>设置<code>i</code>等于它的键?这只是python设计的一部分,特别是<code>dict</code>的工作原理。for循环实际上在调用iterables<a href="https://stackoverflow.com/questions/16814984/python-list-iterator-behavior-and-nextiterator">^{<cd4>} function</a>,直到完成iterable生成器。每个iterable都可以从for循环得到不同的结果(参见第一个链接)。你知道吗</p>
<p>注:
在我的代码示例中,我设置了<code>i = demond[some_index]</code>。这看起来像是一个列表索引抓取,但实际上它只是为了显示以某种顺序在列表中进行迭代。它是PSUEDO代码。记住这一点。你知道吗</p>