title: Accessing dictionary items by position in Python 3.6+ efficiently
body: <p>I understand dictionaries are <a href="https://stackoverflow.com/questions/39980323/are-dictionaries-ordered-in-python-3-6">insertion ordered in Python 3.6+</a>, as an implementation detail in 3.6 and official in 3.7+.</p>
  
  <p>Given they are ordered, it seems strange that no methods exist to retrieve the <em>i</em><sup>th</sup> item of a dictionary by insertion order. The <a href="https://stackoverflow.com/a/44687752/9209546">only solutions</a> available appear to have O(<em>n</em>) complexity, either:</p>
  
  <ol>
  <li>Convert to a list via an O(<em>n</em>) process and then use <code>list.__getitem__</code>.</li>
  <li><code>enumerate</code> dictionary items in a loop and return the value when the desired index is reached. Again, with O(<em>n</em>) time complexity.</li>
  </ol>
  
  <p>Since getting an item from a <code>list</code> has O(1) complexity, is there a way to achieve the same complexity with dictionaries? Either with regular <code>dict</code> or <code>collections.OrderedDict</code> would work.</p>
  
  <p>If it's not possible, is there a structural reason preventing such a method, or is this just a feature which has not yet been considered / implemented?</p>