2015-02-25 3 views
0

У меня есть задание, в котором задана серия предметов и сумма, которую хранит этот предмет, который затем мне нужно поместить в словарь и отобразить с наивысшим количеством акций до наименьшего количества акций. Словарь выглядит как это:Сортировка по значению в словаре python?

items = {'socks': 10, 'hammers': 33, 'keyboards': 56} 

и результат будет выглядеть следующим образом:

keyboards: 56 
hammers: 33 
socks: 10 

После того, как словарь настроить, я с трудом со второй части ... Кто-нибудь знает, как я могу сортировать по значению?

ответ

1

Это легко сделать упорядоченный список (ключ, значение) пар:

import operator 

slop = sorted(thelist.items(), key=operator.itemgetter(1), reverse=True) 

, а затем вы можете петлю над ним, чтобы отобразить его, например, в Python 2:

for k, v in slop: 
    print '{}: {}'.format(k, v), 
print 
1

Для сортировку Вы можете использовать отсортированный метод:

items = {'socks': 10, 'hammers': 33, 'keyboards': 56} 

sorted_items = sorted(items.items(), key=lambda v: v[1], reverse = True) 

В качестве ключа вы указываете сортировку по значению в элементах dict. И чтобы распечатать его, вы можете просто использовать:

for k,v in sorted_items: 
    print("{}:{}".format(k,v)) 
Смежные вопросы