Введение
Исходя из этого вопроса
Python - создание экземпляров объекта в цикле с независимой обработкой< /а>
Я спрашивал себя, как получить доступ к атрибутам всех, а не только к одному экземпляру, если вы создали список экземпляров.
Минимальный пример
Рассмотрите возможность создания списка экземпляров компании с именем и значением атрибутов. Теперь я хотел бы знать, какая из этих компаний имеет наибольшую стоимость.
Пока я просто сохраняю значения атрибута value в массиве, а затем нахожу индекс максимального значения.
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) Есть ли прямой способ найти экземпляр в списке, для которого значение определенного атрибута максимально?