나는이 균일 파이썬에서 개체의 목록을 :
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
를 시도하지 마십시오 . 그 스 니펫에서 마음에 들지 않는 부분이 있습니까?