Python 获取对象列表中具有最大属性值的对象
Python 获取对象列表中具有最大属性值的对象,python,list,attributes,max,Python,List,Attributes,Max,节点是具有级别属性的对象列表 我想从列表中获取具有最高级别值的对象,但我只是通过以下方式获取最高级别值: ancestor = max(node.level for node in nodes_ancestors) 什么是正确的方法?您可以使用和max: from operator import attrgetter ancestor = max(nodes_ancestors, key=attrgetter('level')) 下面是一个演示: >>> from oper
节点是具有级别
属性的对象列表
我想从列表中获取具有最高级别值的对象,但我只是通过以下方式获取最高级别值:
ancestor = max(node.level for node in nodes_ancestors)
什么是正确的方法?您可以使用和max
:
from operator import attrgetter
ancestor = max(nodes_ancestors, key=attrgetter('level'))
下面是一个演示:
>>> from operator import attrgetter
>>> class Obj:
... def __init__(self, val):
... self.attr = val
...
>>> lst = [Obj(x) for x in range(10)]
>>> obj = max(lst, key=attrgetter('attr'))
>>> obj
<__main__.Obj object at 0x021C2290>
>>> obj.attr
9
>>>
>>来自操作员导入属性器
>>>Obj类:
... 定义初始值(self,val):
... self.attr=val
...
>>>lst=[Obj(x)表示范围(10)内的x]
>>>obj=max(lst,key=attrgetter('attr'))
>>>obj
>>>对象属性
9
>>>
一如既往,如果可能有多个对象具有相同的level
@DSM的值,请不要忘记思考您希望发生什么:是的,但在这种情况下,需要具有最高值的任何对象如果我想为其函数foo(self)获取具有最高返回值的对象,我该怎么做
?我不认为我可以使用attrgetter
,对吗?可能只是循环并手动选择?使用namedtuple设置函数foo的返回值