>>> collections.OrderedDict(sorted(a.iteritems(), key=lambda (k,v):v[0], reverse=True)) OrderedDict([('key2', [7, 7]), ('key3', [5, 10]), ('key1', [2, 3])])