2013-08-17 2 views
-1

개체의 특정 특성과 관련하여 개체를 비교하여 개체 목록에서 개체를 찾고 싶습니다.다른 개체와 비교하여 개체 목록에서 개체 찾기 특성

my_list = [obj("low",1), obj("mid",5), obj("high",10)] 

요건은 우선 순위 값에 대하여 이들 오브젝트를 비교 (즉. 1,5 & 10)과 오브젝트를 반환한다.

나는 목록을 탐색하고 우선 순위 속성과 관련하여 각 객체를 다음 객체와 비교하려고 시도했다. 그러나 목록의 객체를 비교할 때 오류가 발생합니다.

누구나 해결책을 도울 수 있습니까?

+0

코드와 예외 사항을 표시 할 수 있습니까? –

+2

여기 정확히 달성하려고하는 것이 명확하지 않습니다. btw. 코드가 도움이 될 것입니다. –

+0

특히 명확하지 않은 것은 "우선 순위 값 (예 : 1, 5 및 10)에 대해 이러한 개체를 비교하고 개체를 반환해야합니다." 물건을 돌려 주면 무슨 뜻입니까? 가장 값이 큰 객체를 반환 하시겠습니까? 정렬 된 객체 목록을 반환 하시겠습니까? –

답변

1
class Obj(object): 
    def __init__(self, title, priority): 
     self.title=title 
     self.priority=priority 

    def __repr__(self): 
     return "Obj(%r, %r)" % (self.title, self.priority) 

my_list = [Obj("low", 1), Obj("mid", 5), Obj("high", 10)] 

정확히 무엇을하고 싶은지 확실하지 않지만 가장 높고 낮은 우선 순위 항목을 얻으려면이 작업을 수행 할 수 있습니다.

>>> max(my_list, key=lambda obj: obj.priority) 
Out[1]: Obj('high', 10) 
>>> min(my_list, key=lambda obj: obj.priority) 
Out[2]: Obj('low', 1) 

또한 목록을 필터링하고 개체의 특성을 기반으로 새 목록을 만들 수 있습니다.

>>> [obj for obj in my_list if obj.priority > 3] 
Out[3]: [Obj('mid', 5), Obj('high', 10)] 
+0

모호한 쿼리를 게시하는 것에 대해 죄송합니다. 내 요구 사항은 개체의 동적 목록에서 가장 높은 우선 순위 값을 사용하여 개체를 가져 오는 것입니다. 그래서 각 객체를 다른 객체와 비교하여 오른쪽을 찾습니다. – user964566

+1

그래서 '최대'행이 귀하의 질문에 대한 답변입니까? @ user964566 – GP89