私はniform 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)
このようにして、メモリを節約するジェネレータを取得します。より多くの利点については Generator Expressions をご覧ください。
attrs = [o.attr for o in objs]
は、説明したようなリストを作成するための適切なコードでした。このためにlist
をサブクラス化しようとしないでください。そのスニペットについて気に入らない点はありますか?