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

问题描述

您还可以编写:

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),以便将其传递给某个函数(例如用于绘制该数据)

pythonic的做法是什么,

attr=[o.attr for o in objsm]

也许派生列表并添加一个方法,所以我可以使用一些习惯用法,例如

objs.getattribute("attr")