On Tue, Nov 26, 2013 at 04:37:28PM +0530, Sunil Tech wrote:
> Hi Friends,
> 
> Is it possible to sort dict & to get result as dict?
> if it is possible, please give some example.

No it is not possible, dicts are deliberately unsorted.

Please read my explanation why from yesterday:

https://mail.python.org/pipermail/tutor/2013-November/098436.html

Instead, you can use an OrderedDict, which is ordered by insertion 
order, not sort order. But if you sort the items first, then insert them 
into the OrderedDict, it will be sorted.


py> from collections import OrderedDict
py> data = {'a':1, 'c':3, 'd':4, 'b':2}
py> items = sorted(data.items())
py> data = OrderedDict(items)
py> data
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])


Another solution is to only sort the items when you're ready to use 
them:

py> data = {'a':1, 'c':3, 'd':4, 'b':2}
py> for key in sorted(data.keys()):
...     print(key, data[key])
...
('a', 1)
('b', 2)
('c', 3)
('d', 4)


A third is to write your own SortedDict class. If you google for it, you 
will probably find dozens of ideas.


-- 
Steven
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to