从python中的对象列表中提取属性列表

我有一个统一的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) 

这样你就可以得到一个节省内存的发生器。 为了更多的好处看看发电机expression式 。

attrs = [o.attr for o in objs]是制作一个类似你所描述的列表的正确代码。 不要为此listlist 。 有什么你不喜欢的片段?