我可以通过迭代现有的字典来创建排名的字典吗?

时间:2013-09-15 16:02:34

标签: python-2.7 dictionary ranking

我一直在寻找这个问题的答案,但没有快乐。

我有一个包含酒店名称和价格的字典。

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

我只想迭代dict并返回一个单独的dict,其值根据最低值到最高值对键进行排名,例如:

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

我知道如何使用sorted迭代字典并提供有序列表,但我不确定处理上述问题的最佳方法。所有人都非常感谢。

1 个答案:

答案 0 :(得分: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)]