fra*_*sus 66 python loops list
我在python中有一个统一的对象列表:
class myClass(object):
def __init__(self, attr):
self.attr = attr
self.other = None
objs = [myClass (i) for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
现在我想提取一个列表,其中包含该类的某些属性(让我们说attr),以便将其传递给某些函数(例如用于绘制该数据)
什么是pythonic方式,
attr=[o.attr for o in objsm]
Run Code Online (Sandbox Code Playgroud)
?
也许派生列表并添加一个方法,所以我可以使用一些成语
objs.getattribute("attr")
Run Code Online (Sandbox Code Playgroud)
?
Mik*_*ham 70
attrs = [o.attr for o in objs]是一个正确的代码,用于制作与您描述的列表类似的列表.不要试图为此子类化list.有什么东西你不喜欢那个片段吗?
Ret*_*old 64
你也可以写:
attr=(o.attr for o in objsm)
Run Code Online (Sandbox Code Playgroud)
这样你就可以获得一个节省内存的生成器.有关更多优势,请参阅Generator Expressions.