title: Differences between Dictionary orders in Python 3.6 and Python 3.5
body: <p>I am trying to understand the differences between python dictionaries in <code>python 3.6.7</code> and <code>python 3.5.2</code>. The way they store the order of key-value pairs seems different.</p>
  
  <p>For example, assume there is a dictionary named <code>di</code>:</p>
  
  <pre><code>    di = {'a':1,'A':1,'b':2, 'B':2, 'c':3, 'C':3}
  </code></pre>
  
  <p>in <code>Python 3.5.2</code>, when I print <code>di</code>, the output is:</p>
  
  <pre><code>    {'C': 3, 'a': 1, 'A': 1, 'B': 2, 'c': 3, 'b': 2}
  </code></pre>
  
  <p>However, in <code>Python 3.6.7</code>, it is:</p>
  
  <pre><code>    {'a': 1, 'A': 1, 'b': 2, 'B': 2, 'c': 3, 'C': 3}
  </code></pre>
  
  <p>What have been changed between the two versions?
  How can I make my code order the result of <code>python 3.6.7</code> similar to <code>3.5.2</code>'s.</p>
  
  <p>P.S. I know that there is actually <strong>no order</strong> in Python dictionary. The term <code>order</code> here is used to make the reader easy to understand my question.
  Thank you.</p>