title: What are dictionary view objects?
body: <p>In python 2.7, we got the <a href="http://docs.python.org/library/stdtypes.html#dictionary-view-objects" rel="noreferrer">dictionary view methods</a> available.</p>
  
  <p>Now, I know the pro and cons of the following:</p>
  
  <ul>
  <li><code>dict.items()</code> (and <code>values</code>, <code>keys</code>): returns a list, so you can actually store the result, and</li>
  <li><code>dict.iteritems()</code> (and the like): returns a generator, so you can iterate over each value generated one by one. </li>
  </ul>
  
  <p>What are <code>dict.viewitems()</code> (and the like) for? What are their benefits? How does it work? What is a view after all?</p>
  
  <p>I read that the view is always reflecting the changes from the dictionary. But how does it behave from the perf and memory point of view? What are the pro and cons?</p>