擅长:python、mysql、java
<p>正如您所提到的,<code>dict.items()</code>返回字典的(键,值)对列表的副本,这是浪费的,<code>dict.iteritems()</code>返回字典(键,值)对上的迭代器。</p>
<p>现在以下面的例子来看看dict的interator和dict的view之间的区别</p>
<pre><code>>>> d = {"x":5, "y":3}
>>> iter = d.iteritems()
>>> del d["x"]
>>> for i in iter: print i
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: dictionary changed size during iteration
</code></pre>
<p>而一个视图只是简单地向您显示dict中的内容,而不管它是否发生了变化:</p>
<pre><code>>>> d = {"x":5, "y":3}
>>> v = d.viewitems()
>>> v
dict_items([('y', 3), ('x', 5)])
>>> del d["x"]
>>> v
dict_items([('y', 3)])
</code></pre>
<p>视图只是字典现在的样子。删除条目后,<code>.items()</code>将过期,<code>.iteritems()</code>将引发错误。</p>