title: Are Python dictionaries literals evaluated in order?
body: <p>When I run this</p>
  
  <pre><code>import itertools
  
  bar = itertools.count(1).next
  
  print {'a': bar(), 'b': bar(), 'c': bar()}
  </code></pre>
  
  <p>on CPython, I get <code>{'a': 0, 'b': 1, 'c': 2}</code>. Is this consistent across implementations and/or documented anywhere? Will <code>a</code>, <code>b</code> and <code>c</code> ever be assigned values out of order?</p>