nodes_ancestors
是具有level
属性的对象列表。
我想从列表中获取具有最高级别值的对象,但我只获得最高值:
ancestor = max(node.level for node in nodes_ancestors)
什么是正确的方法呢?
答案 0 :(得分:20)
您可以使用operator.attrgetter
和max
的{{3}}:
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
>>>