KorP
@KorP
Кратко о себе

Как правильно сортировать словарь в Python?

Всем привет. Я в питоне не очень силён, нужно было накидать небольшой скрипт, который сортировал бы данные, но что то у меня не выходит правильно это сделать. stackoverflow уже почитал, погуглил, но что то лыжи не едут.
Есть такой словарь
{u'24': u'24_C2_fc_DKSInfra2_lun', u'25': u'25_C2_fc_EandY_lun', u'26': u'26_C2_fc_Common5_lun', u'27': u'27_C3_fc_ReStoreRetail2_lun', u'20': u'20_C2_iscsi_svm_Restore_lun', u'21': u'21_C1_iscsi_svm_Restore_lun', u'22': u'22_C1_fc_DKSInfra1_lun', u'23': u'23_C1_fc_DKSFKS_lun', u'28': u'28_C3_fc_EandY_lun', u'29': u'29_C1_fc_Common4_lun', u'40': u'40_C1_fc_Common3_lun', u'1': u'1_iscsi_MainMgmt_lun', u'5': u'5_C2_iscsi_svm_DetMir_lun', u'7': u'7_C2_iscsi_Common3_lun', u'6': u'6_C2_iscsi_Common2_lun', u'9': u'9_C3_iscsi_Common5_lun', u'8': u'8_C2_iscsi_Common4_lun', u'11': u'11_C2_iscsi_1S_lun', u'10': u'10_C2_iscsi_1S_lun', u'13': u'13_C1_iscsi_Common7_lun', u'12': u'12_C4_iscsi_Common6_lun', u'15': u'15_C2_iscsi_Common9_lun', u'14': u'14_C3_iscsi_Common8_lun', u'17': u'17_C1_iscsi_TRK_E_lun', u'16': u'16_C4_iscsi_ETC_lun', u'33': u'33_C3_fc_Common6_lun', u'18': u'18_C3_fc_SiM_E_lun', u'31': u'31_fc_TSM01_lun', u'30': u'30_C3_fc_SiM_lun', u'37': u'37_C2_fc_FIFA1_lun', u'36': u'36_C2_fc_Common2_lun', u'35': u'35_C2_fc_Common1_lun', u'34': u'34_C3_fc_CardSmile_lun', u'19': u'19_C3_iscsi_svm_Restore_lun', u'32': u'32_fc_TSM02_lun'}

пытаюсь вывести его в отсортированном виде
for k, v in sorted(dictionary.items()): print k + '\t' + v

но получается фигня
1 1_iscsi_MainMgmt_lun
10 10_C2_iscsi_1S_lun
11 11_C2_iscsi_1S_lun
20 20_C2_iscsi_svm_Restore_lun
21 21_C1_iscsi_svm_Restore_lun
22 22_C1_fc_DKSInfra1_lun
31 31_fc_TSM01_lun
40 40_C1_fc_Common3_lun
5 5_C2_iscsi_svm_DetMir_lun
6 6_C2_iscsi_Common2_lun
7 7_C2_iscsi_Common3_lun
8 8_C2_iscsi_Common4_lun
9 9_C3_iscsi_Common5_lun

уже и collections.OrderedDict попробовал и в 3-й версии попробовал, результат везде один. чем лыжи смазать? подмогите пожалуйста
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
Astrohas
@Astrohas
Python/Django Developer
Вы можете хранить числовые ключи как числа а не как строки.
А пока
for k, v in sorted(a.items(), key=lambda x: int(x[0])): print k + '\t' + v
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
for k in sorted(d.keys(), key=int):
    print("%s\t%s" % (k, d[k]))  # pep8 rules
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы