En Mon, 28 May 2007 05:37:12 -0300, Wim Vogelaar  
<[EMAIL PROTECTED]> escribió:

> I made the original list two elements longer: a =
> [1,2,3,4,5,6,7,8,9,10,11,12]
>
> and to my surprise the output is now ordered, giving: {2: 3, 4: 5, 6: 7,  
> 8:
> 9, 10: 11, 12: 13}
>
> I am running ActiveState ActivePython 2.5

Keys in a dictionary are listed in an arbitrary order; the *only* thing  
about the ordering you can say is that, given a FIXED dictionary (already  
constructed, and without any other intervening operation that could alter  
its content), when you iterate over its keys (using .keys(), .iterkeys()),  
its values (.values(), .itervalues()) or items (.items(), .iteritems())  
you will always get the same things in the same order over and over.
If you create the dictionary using a different sequence of insertions and  
deletions, you may get different results. If you insert and delete things  
afterwards, you may get different results. If you exit the program and run  
it again, you may get different results. The *only* guaranteed fact is  
that you will get the same results provided you don't modify the  
dictionary at all.

See note (3) in http://docs.python.org/lib/typesmapping.html

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to