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