我想通過比較對象與對象的特定屬性來找到對象列表中的對象。通過與其他對象進行比較來查找對象列表中的對象屬性
my_list = [obj("low",1), obj("mid",5), obj("high",10)]
的要求是這些對象相對於該優先級值進行比較(即1,5 & 10),並返回該對象。
我試着遍歷列表,並將每個對象與下一個對象的優先級屬性進行比較。但是我比較列表中的對象時出錯。
任何人都可以幫助我一個解決方案。
我想通過比較對象與對象的特定屬性來找到對象列表中的對象。通過與其他對象進行比較來查找對象列表中的對象屬性
my_list = [obj("low",1), obj("mid",5), obj("high",10)]
的要求是這些對象相對於該優先級值進行比較(即1,5 & 10),並返回該對象。
我試着遍歷列表,並將每個對象與下一個對象的優先級屬性進行比較。但是我比較列表中的對象時出錯。
任何人都可以幫助我一個解決方案。
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)]
抱歉張貼不明確的查詢。我的要求是從對象的動態列表中獲取對象,並且具有最高的優先級值。 所以這是通過比較每個對象與其他對象來找到正確的 – user964566
所以'max'行回答你的問題? @ user964566 – GP89
你能告訴我們代碼和例外嗎? –
目前還不清楚你在這裏試圖達到什麼,順便說一句。代碼會有所幫助。 –
特別不清楚的是:「要求將這些對象與優先級值(即1,5和10)進行比較並返回對象。」你是什麼意思返回一個對象?返回值最高的對象?返回一個排序的對象列表? –