Можно ли использовать numpy.argmax с настраиваемым полем объектов в списке? - PullRequest
3 голосов
/ 30 мая 2011

Что-то вроде:

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))

Можно ли получить элемент в списке с максимальным или минимальным идентификатором?

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Вам даже не нужно прибегать к 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.

2 голосов
/ 30 мая 2011

Если вы определяете оператор __cmp__ для класса Test, argmax должен вести себя как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...