假设我有5个对象:obj1
到obj5
:
obj1.x = 2.7
obj2.x = 0.9
obj3.x = 3.8
obj4.x = 1.2
obj5.x = 0.4
如何找到(有效)
x
的最大值,并识别相应的obj
?这里的预期答案是:x = 3.8, it belongs to obj3
顺便说一句,在实际情况下,我有
500
个对象。 最佳答案
如果您有一个列表,并且需要最大值的索引,则可以将max
和enumerate
组合在一起,使其与纯Python中的numpy.argmax
等效:
l = [obj1, obj2, obj3, ...]
i = max(enumerate(l), key=lambda x: x[1].x)[0]
i
将是包含最大值的索引,因此您可以将其打印为print('x = {}, belongs to obj{}'.format(l[i].x, i + 1))
在您给出的示例中,
i == 2
将显示x = 3.8, belongs to obj3
。