首先,關於你的聲明:
如果我有一本字典,它的排序
在Python dict
不天然地下令。因此,您無法保存訂單。如果要使用排序順序創建dict
,請使用collections.OrderedDict()
。例如:
>>> from collections import OrderedDict
>>> from operator import itemgetter
>>> food = {"ham":12, "cookie":5, "eggs":16, "steak":2}
>>> my_ordered_dict = OrderedDict(sorted(food.items(), key=itemgetter(1)))
通過my_ordered_dict
的值保持爲:
>>> my_ordered_dict
OrderedDict([('steak', 2), ('cookie', 5), ('ham', 12), ('eggs', 16)])
這相當於dict
保留的順序爲:
{
'steak': 2,
'cookie': 5,
'ham': 12,
'eggs': 16
}
爲了轉換dict
排除項與前3的值,你必須切片項目(dict.items()
返回列表的形式爲(key, value)
):
>>> dict(my_ordered_dict.items()[3:]) # OR, OrderedDict(my_ordered_dict.items()[3:])
{'eggs': 16} # for maintaining the order
你是什麼意思指數?你的意思是按鍵? – ettanany
字典排序順序不穩定(不同Python運行之間的變化)。你想使用OrderedDict,當按鍵添加時按順序提供穩定的排序順序。 –
詞典沒有訂購,因此沒有「前三個」項目。所以你必須找到解決問題的關鍵。 –