title: Iterating over dictionary items(), values(), keys() in Python 3
body: <p>If I understand correctly, in Python 2, <code>iter(d.keys())</code> was the same as <code>d.iterkeys()</code>. But now, <code>d.keys()</code> is a view, which is in between the list and the iterator. What's the difference between a view and an iterator?</p>
  
  <p>In other words, in Python 3, what's the difference between</p>
  
  <pre><code>for k in d.keys()
      f(k)
  </code></pre>
  
  <p>and</p>
  
  <pre><code>for k in iter(d.keys())
      f(k)
  </code></pre>
  
  <p>Also, how do these differences show up in a simple <code>for</code> loop (if at all)?</p>