Вы должны объявить sorted_dict_list
за пределами первого for
l oop, иначе каждый раз, когда вы go через l oop получаете новый пустой список. Вдобавок ко всему, ваши l oop - sorted_dict_list
находятся внутри первого for
l oop.
Таким образом, каждый раз, когда вы l oop через внешний l oop, вы создаете пустой список, добавьте в него следующую пару «ключ-значение», просмотрите список (который состоит только из одного элемента) и распечатайте значения. По сути, вы просто распечатываете каждую пару "ключ-значение" как go через.
Вам нужно переместить объявление списка за пределы l oop и убрать отступ второго l oop.
sorted_dict_list = []
for key, value in data_dict.iteritems():
sorted_dict_list.append((key, value["salary"], value["bonus"]))
sorted_dict_list.sort(key=lambda tup: tup[1])
for tuple in sorted_dict_list:
print tuple
Это может быть лучшим решением:
def sortKey(item):
return item[1]
sorted_dict = [(key, value['salary'], value['bonus']) for key, value in data_dict.items()]
sorted_dict = sorted(sorted_dict, key=sortKey)
for item in sorted_dict:
print(item)