可以对列表中的自定义对象字段使用numpy.argmax吗?
类似这样的内容:
class Test:
def __init__(self, n):
self.id = n
def __str__(self):
return str(self.id)
my_list = []
my_list.append(Test(1))
my_list.append(Test(2))
my_list.append(Test(3))
有没有办法找到列表中id最大或最小的元素呢?
2 个回答
2
如果你为类 Test
定义了 __cmp__
操作符,那么 argmax
就会按照预期的方式工作。
5
在你的例子中,其实根本不需要使用 numpy.argmax()
。因为你的对象是在一个普通的 Python 列表里,你可以直接用 Python 自带的 max()
函数:
index = max(range(len(my_list)), key=lambda i: my_list[i].id)
或者
index = max(enumerate(my_list), key=lambda x: x[1].id)[0]
这样也能找到那个 id
最大的项目的索引。