从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]
是制作一个类似你所描述的列表的正确代码。 不要为此list
子list
。 有什么你不喜欢的片段?