Bel*_*dar 9 python attributes list max
nodes_ancestors
是具有level
属性的对象列表.
我想从列表中获取具有最高级别值的对象,但我只获得最高值:
ancestor = max(node.level for node in nodes_ancestors)
Run Code Online (Sandbox Code Playgroud)
什么是正确的方法呢?
iCo*_*dez 27
您可以使用operator.attrgetter
和key
参数的max
:
from operator import attrgetter
ancestor = max(nodes_ancestors, key=attrgetter('level'))
Run Code Online (Sandbox Code Playgroud)
以下是演示:
>>> 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
>>>
Run Code Online (Sandbox Code Playgroud)