파이썬의 객체 목록에서 속성 목록 추출 def __init__(self, attr):

나는이 균일 파이썬에서 개체의 목록을 :

class myClass(object):
    def __init__(self, attr):
        self.attr = attr
        self.other = None

objs = [myClass (i) for i in range(10)]

이제 일부 기능 (예 : 데이터 플로팅)을 전달하기 위해 해당 클래스의 일부 속성 (attr이라고하자)이 포함 된 목록을 추출하고 싶습니다.

비단뱀적인 방법은 무엇입니까?

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를 시도하지 마십시오 . 그 스 니펫에서 마음에 들지 않는 부분이 있습니까?


답변