["python","python-3.x","sorting","dictionary"]
Python 3 sort a dict by its values

The only methods I found work for python2 or return only list of tuples. Is it possible to sort dictionary, e.g. {"aa": 3, "bb": 4, "cc": 2, "dd": 1}, by its values? Order of sorted dictionary I want to achieve is from largest to smallest. I want results to look like this: bb 4 aa 3 cc 2 dd 1 And after sorting I want to store it into a text file.
itemgetter (see other answers) is (as I know) more efficient for large dictionaries but for the common case, I believe that d.get wins. And it does not require an extra import. >>> d = {"aa": 3, "bb": 4, "cc": 2, "dd": 1} >>> for k in sorted(d, key=d.get, reverse=True): ... k, d[k] ... ('bb', 4) ('aa', 3) ('cc', 2) ('dd', 1) Note that alternatively you can set d.__getitem__ as key function which may provide a small performance boost over d.get.