2013-09-15 2 views
0

Я искал ответ на это какое-то время, но без радости.Могу ли я создать ранжированный dict, итерации по существующему dict?

У меня есть указатель, содержащий названия гостиниц и цены.

mydict = {'HotelA': 100, 'HotelB': 300, 'HotelC': 200} 

Я просто хотел бы перебрать Dict и возвращают отдельный Dict, значения которого ранжировать ключи на основе самых низких до высоких значений, например:

mynewdict = {'HotelA': 1, 'HotelB': 3, 'HotelC': 2} 

Я знаю о том, как использовать sorted перебирать словарь и предоставлять упорядоченный список, но я не уверен в том, как наилучшим образом справиться с вышеуказанным. Вся помощь очень ценится.

+0

показать нам код. что вы уже пробовали? – hop

+0

Я довольно новичок в Python и не нашел ничего, с чем я МОГУ еще попробовать, поэтому приеду сюда и объясню, что именно я хочу делать в явных выражениях. – user2781522

+0

взгляните на http://stackoverflow.com/questions/613183/python-sort-a-dictionary-by-value и встроенную функцию «enumerate» – hop

ответ

0
>>>import operator 
>>>mydict = {'HotelA': 100, 'HotelB': 300, 'HotelC': 200} 
#Sorting a list of tuples based on their second element (the value ex.: 100, 200, 300) 
>>>sorted_list = sorted(mydict.iteritems(), key=operator.itemgetter(1)) 

В этом случае sorted_list будет упорядоченный список кортежей, каждый из кортежей, содержащие название отеля и значение:

[('HotelA', 100), ('HotelC', 200), ('HotelB', 300)] 
Смежные вопросы