我想通过比较对象与对象的特定属性来找到对象列表中的对象。通过与其他对象进行比较来查找对象列表中的对象属性
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)进行比较并返回对象。”你是什么意思返回一个对象?返回值最高的对象?返回一个排序的对象列表? –