On 14/04/13 04:19, Saad Javed wrote:

This creates a dictionary whose keys are out of order in terms of dates.


Dictionaries are unordered. That is to say, they have no defined order, when
you print them, or iterate over them, items will appear in whatever order
they happen. If you modify a dict, the order can even change.

This is by design: access to items in the dict is extremely fast, especially
for large dicts, because Python doesn't have to search through the items one
at a time. Dicts are a type of "hash table", which is why dictionary keys must
be hashable.

(If you don't know what a hash table is, please ask.)

So you cannot rely on dicts being in any specific order.

There is an OrderedDict in the collections module which remembers the order
that items are inserted into the OrderedDict. But that's not quite the same
as items being sorted.


{'Thu Apr 04': ['Weigh In'], 'Sat Apr 06': ['Collect NIC', 'Finish PTI
Video'], 'Wed Apr 10': ['Serum uric acid test'], 'Sun Apr 14': ['Download
Louis CK Oh My God', '4:00pm', 'UPS Guy'], 'Sat Apr 13': ['1:00pm', 'Get
flag from dhariwal']}

Sat Apr 13 is appearing after Sun Apr 14. How do you sort this?


You cannot sort a dictionary directly, but you can sort the keys, then iterate
over them in that order.

keys = sorted(mydict.keys())
for key in keys:
    print mydict[key]




--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to