sort values from dictionary of dictionaries python 2.4
J Wolfe
vorticitywolfe at gmail.com
Fri Nov 20 15:07:35 EST 2009
On Nov 9, 2:27 pm, Peter Otten <__pete... at web.de> wrote:
> J Wolfe wrote:
> > I would like to sort this dictionary by the values of the inner
> > dictionary ‘ob’ key.
>
> Python's built-in dictionary is unsorted by design.
>
>
>
> > mydict =
> > {’WILW1′: {’fx’: ‘8.1′, ‘obtime’: ‘2009-11-07 06:45:00′, ‘ob’: ‘6.9′},
> > ‘GRRW1′: {’fx’: ‘12.8′, ‘obtime’: ‘2009-11-07 04:15:00′, ‘ob’: ‘6.7′},
> > ‘NASW1′: {’fx’: ‘6.8′, ‘obtime’: ‘2009-11-07 06:30:00′, ‘ob’: ‘7.1′}
> > }
>
> > In this case, this would become:
>
> > mysorteddic =
> > {’NASW1′: {’fx’: ‘6.8′, ‘obtime’: ‘2009-11-07 06:30:00′, ‘ob’: ‘7.1′},
> > ‘WILW1′: {’fx’: ‘8.1′, ‘obtime’: ‘2009-11-07 06:45:00′, ‘ob’: ‘6.9′},
> > ‘GRRW1′: {’fx’: ‘12.8′, ‘obtime’: ‘2009-11-07 04:15:00′, ‘ob’: ‘6.7′}
> > }
>
> > I have had no luck in trying to figure this out. I am restricted to
> > using python 2.4.3.
>
> > Any help would be appreciated!
>
> You may be able to work around that limitation by putting the dict items
> into a list and sort that:
>
> >>> for item in sorted(mydict.items(), key=lambda (k, v): float(v["ob"]),
>
> reverse=True):
> ... print item
> ...
> ('NASW1', {'fx': '6.8', 'obtime': '2009-11-07 06:30:00', 'ob': '7.1'})
> ('WILW1', {'fx': '8.1', 'obtime': '2009-11-07 06:45:00', 'ob': '6.9'})
> ('GRRW1', {'fx': '12.8', 'obtime': '2009-11-07 04:15:00', 'ob': '6.7'})
>
> Peter
Thanks Peter, That worked! :-)
More information about the Python-list
mailing list