У меня есть универсальный список объектов в Python:
class myClass(object):
def __init__(self, attr):
self.attr = attr
self.other = None
objs = [myClass (i) for i in range(10)]
Теперь я хочу извлечь список с некоторым атрибутом того класса (скажем, attr), для передачи его так некоторая функция (для того, чтобы отобразить те данные на графике, например)
Каков pythonic способ сделать его,
attr=[o.attr for o in objsm]
?
Возможно, получите список и добавьте метод к нему, таким образом, я могу использовать некоторую идиому как
objs.getattribute("attr")
?
Вы также можете написать:
attr=(o.attr for o in objsm)
Таким образом вы получите генератор, сохраняющий память. Для получения дополнительных преимуществ см. Выражения генератора .
attrs = [o.attr for o in objs]
был правильным кодом для создания списка, подобного тому, который вы описываете. Не пытайтесь создать подкласс list
для этого. Что-то вам не понравилось в этом фрагменте?