2013-08-17 131 views
-1

我想通過比較對象與對象的特定屬性來找到對象列表中的對象。通過與其他對象進行比較來查找對象列表中的對象屬性

my_list = [obj("low",1), obj("mid",5), obj("high",10)] 

的要求是這些對象相對於該優先級值進行比較(即1,5 & 10),並返回該對象。

我試着遍歷列表,並將每個對象與下一個對象的優先級屬性進行比較。但是我比較列表中的對象時出錯。

任何人都可以幫助我一個解決方案。

+0

你能告訴我們代碼和例外嗎? –

+2

目前還不清楚你在這裏試圖達到什麼,順便說一句。代碼會有所幫助。 –

+0

特別不清楚的是:「要求將這些對象與優先級值(即1,5和10)進行比較並返回對象。」你是什​​麼意思返回一個對象?返回值最高的對象?返回一個排序的對象列表? –

回答

1
class Obj(object): 
    def __init__(self, title, priority): 
     self.title=title 
     self.priority=priority 

    def __repr__(self): 
     return "Obj(%r, %r)" % (self.title, self.priority) 

my_list = [Obj("low", 1), Obj("mid", 5), Obj("high", 10)] 

我不確定你想要做什麼,但要獲得最高和最低優先級的項目,你可以做到這一點。

>>> max(my_list, key=lambda obj: obj.priority) 
Out[1]: Obj('high', 10) 
>>> min(my_list, key=lambda obj: obj.priority) 
Out[2]: Obj('low', 1) 

您還可以過濾列表,並根據對象的屬性創建一個新列表。

>>> [obj for obj in my_list if obj.priority > 3] 
Out[3]: [Obj('mid', 5), Obj('high', 10)] 
+0

抱歉張貼不明確的查詢。我的要求是從對象的動態列表中獲取對象,並且具有最高的優先級值。 所以這是通過比較每個對象與其他對象來找到正確的 – user964566

+1

所以'max'行回答你的問題? @ user964566 – GP89

相關問題