Python 是否可以将numpy.argmax与列表中的自定义对象字段一起使用?

Python 是否可以将numpy.argmax与列表中的自定义对象字段一起使用?,python,numpy,Python,Numpy,比如: 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的元素?如果您为classTest定义\uu cmp\u

比如:

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的元素?

如果您为class
Test
定义
\uu cmp\uuu
运算符,则
argmax
应按预期运行。

在您的示例中,您甚至不需要求助于
numpy.argmax()
。由于对象位于标准Python列表中,因此还可以使用Python内置的
max()
函数:

index = max(range(len(my_list)), key=lambda i: my_list[i].id)

还将为您提供具有最大
id
的项目索引

index = max(enumerate(my_list), key=lambda x: x[1].id)[0]