2013-09-21 3 views
1

У меня есть комбинация слов в словаре python и строка.Сортировка словаря python по datatype

например

dic = {"a": "11","c": [1,3,4], "b": [1,2,3], "g": "a"} 

Я хочу, чтобы отсортировать его по типу данных.

как

dic = {"a": "11", "g": "a", "c": [1,3,4], "b": [1,2,3]} 
+1

Словари не имеют заказа! Используйте 'collections.OrderedDict', если хотите, – TerryA

ответ

5

Dicts неотъемлемо беспорядочный, так что вы можете только получить отсортированный список из словаря. Если вы хотите, чтобы получить список пар ключ/значение, отсортированных по типу значений, вы можете сделать это следующим образом:

sorted(dic.items(), key=lambda pair: type(pair[1]), reverse=True) 

Это даст вам следующий список, с элементами строк идет до Перечень записей:

[('a', '11'), ('g', 'a'), ('c', [1, 3, 4]), ('b', [1, 2, 3])] 
+0

Работает. Спасибо чувак. – Naveed

+3

@Nav: просьба [принять] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ответ, если это помогло. – georg

Смежные вопросы