Как отсортировать словарь Python по значению?

Возможный дубликат:
В Python как сортировать список словарей по значениям словаря?
Сортировка словаря Python на основе значений вложенных словарей

У меня есть словарь формы, как указано ниже:

a_dict = { 'e': (1, 100), 'a': (2, 3) } 

Я не могу сортировать его по второму элементу кортежа. Итоговый словарь появится ниже:

 a_dict = { 'a': (2, 3), 'e': (1, 100) } 

Словари нельзя сортировать как таковые, но вы можете сортировать их содержимое:

 sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2) sorted(a_dict.items(), key=lambda item: item[1][1]) # Python 3 

Вы можете поместить результаты в collections.OrderedDict (начиная с версии 2.7):

 OrderedDict(sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2)) OrderedDict(sorted(a_dict.items(), key=lambda item: item[1][1]) # Python 3 

В вашем примере вы используете список словарей . Сортировка dict по ключу:

 mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} for key in sorted(mydict.iterkeys()): print "%s: %s" % (key, mydict[key]) alan: 2 bob: 1 carl: 40 danny: 3 

Если вы хотите отсортировать dict по значению, см. Раздел Сортировка словаря Python по значению