<p>我运行了这段代码,得到如下错误:</p>
<pre><code>Traceback (most recent call last):
File "urllister.py", line 26, in <module>
for k in l: print k,"points to",l[k],"\n"
RuntimeError: dictionary changed size during iteration
</code></pre>
<p>我唯一要做的就是在第27行的for循环中打印</p>
^{pr2}$
<p>这是因为循环引入了一个新的局部变量k,这意味着局部变量的字典在循环中被改变了。在</p>
<p>最简单的解决方案是在循环之前定义k,这样一旦循环开始,locals()就不会改变。在</p>
<pre><code>k = 0
l = locals()
for k in l:
print k,"points to",l[k],"\n"
</code></pre>