我有一個存儲在字典中的對象的集合,我想獲取特定屬性的最大值。這些物品是餅乾(可能是巧克力芯片),每個餅乾都有自己的溫度,熱容量,批號等。批號描述了它離開烤箱的哪一組餅乾。查找字典中對象屬性的最大值
class Cookie:
def __init__(self, density, specificheat, batch):
self.rho = density
self.cp = specificheat
self.batch = batch
self.volume = 1.2e-5 # m^3
self.surfarea = 4.9e-3 # m^2
...
我想查找字典中的最大批次編號。我知道這將是簡單的,如果我使用的是列表,我可以使用operator.attrgetter('batch')對列表進行排序並獲取值。然而,使用字典,這行不工作:
sorted(cookies, key=operator.attrgetter('batch'))
我可以成立一個for循環並辦理字典中的每一個對象,但我覺得有一種更好的方式來做到這一點。我想避免切換到列表,因爲我正在運行優化將cookie分類到框中,並且當您需要擔心2000 cookie時,從字典檢索數據比從列表檢索數據更快。 (我使用timeit()來計時)。我在Stackoverflow上尋找類似的問題,但大多數似乎是在JavaScript中。我發現的Python問題是針對不存儲像我這樣的對象的字典。任何幫助將不勝感激!
謝謝!這對我有用: cookie_maxbatch = max(cookies.values(),key = operator.attrgetter('batch')) nbatches = cookie_maxbatch.getbatch() – magnoliafork
@magnoliafork,不用擔心,不客氣。 –
爲了說明這一點,如果cookie被刪除或更新 – FujiApple