Intro
Исходя из этого вопроса
Python - создание экземпляров объектов в цикле с независимой обработкой
Iя спрашивал себя, как получить доступ ко всем атрибутам, а не к одному экземпляру, если вы создали список экземпляров.
Минимальный пример
Рассмотрите возможность создания списка экземпляров компании с атрибутами и именем и значением.Теперь я хотел бы знать, какая из этих компаний имеет наибольшую ценность.
Пока я просто храню значения атрибута значения в массиве, а затем нахожу индекс максимального значения.
import numpy as np
class Company(object):
def __init__(self, name, value):
self.name = name
self.value = value
companies = []
for name in 'ABC':
companies.append(Company(name, np.random.rand()))
l = len(companies)
liste = np.zeros(l)
for i in range(l):
liste[i] = companies[i].value
ind = np.unravel_index(np.argmax(liste), liste.shape)
print("Highest value: ", liste[ind])
print("Company of highest value: ", companies[ind[0]].name)
Вопросы
1) Есть ли другой способ создать этот список всех значений атрибутов без цикла for?
2) Есть ли прямой способ найти экземпляр в списке, для которого значениеопределенный атрибут максимален?