【发布时间】:2019-06-18 04:35:54
【问题描述】:
我有一个多对象列表如下(简化版)
listA = [[obj1(val=1),obj2(val=1)],[obj2(val=4),obj3(val=2)]]
listB = [[obj4(val=1),obj5(val=1)],[obj6(val=5),obj7(val=3)]]
listC = [[obj8(val=1),obj9(val=1)],[obj10(val=6),obj11(val=4)]]
我想通过比较每个多列表的子列表,从上述多列表中获取具有某个属性最大值的对象列表。如果所有比较对象的属性值都相同,则应该得到任何一个对象。
输出:
maxList = [obj1(value=1),obj10(val=6)]
有一个类似的question 从列表中获取属性最大值的对象,但这种情况是针对多列表的。我知道这可以通过嵌套的 for 循环来实现,但是必须有更好的方法来使用 itertools 和 getattr 来做到这一点?
【问题讨论】:
标签: python-3.x list itertools getattribute