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