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