JerryB wrote:
> Hi,
> I have a dictionary for counting ocurrences of strings in a document.
> The dictionary looks like this:
>
> 'hello':135
> 'goodbye':30
> 'lucy':4
> 'sky':55
> 'diamonds':239843
> 'yesterday':4
>
> I want to print the dictionary so I see most common words first:
>
> 'diamonds':239843
> 'hello':135
> 'sky':55
> 'goodbye':30
> 'lucy':4
> 'yesterday':4
>
> How do I do this? Notice I can't 'swap' the dictionary (making keys
> values and values keys) and sort because I have values like lucy &
> yesterday which have the same number of occurrences.
>
> Thanks.
>
Don't try to 'swap' the dict, just sort a list based on the items in
the dict. Try this:
original= {
'hello':135,
'goodbye':30,
'lucy':4,
'sky':55,
'diamonds':239843,
'yesterday':4 }
items = sorted( (v,k) for (k,v) in original.iteritems() )
items.reverse() # depending on what order you want
print items
The result is:
[(239843, 'diamonds'), (135, 'hello'), (55, 'sky'), (30, 'goodbye'), (4,
'yesterday'),
(4, 'lucy')]
--Irmen
--
http://mail.python.org/mailman/listinfo/python-list