반응형
클래스 인스턴스 Python 목록 정렬
이 질문에 이미 답변이 있습니다.
클래스 인스턴스 목록이 있습니다.
x = [<iteminstance1>,...]
다른 속성 중에서 클래스에는 score
속성이 있습니다. 이 매개 변수를 기준으로 항목을 오름차순으로 정렬하려면 어떻게해야합니까?
편집 : list
파이썬에는 sort
. 여기서 이걸 사용해도 될까요? 이 함수가 내 score
속성 을 사용하도록 어떻게 지시 합니까?
import operator
sorted_x = sorted(x, key=operator.attrgetter('score'))
x를 제자리에서 정렬하려면 다음을 수행 할 수도 있습니다.
x.sort(key=operator.attrgetter('score'))
수락 한 솔루션 외에도 __lt__()
클래스에 특수 ( "보다 작음") 메서드를 구현할 수도 있습니다 . 그러면 sort()
메서드 (및 sorted()
함수)가 개체를 비교하여 정렬 할 수 있습니다. 그러나이 속성에 대해서만 정렬 할 때 가장 잘 작동합니다.
class Foo(object):
def __init__(self, score):
self.score = score
def __lt__(self, other):
return self.score < other.score
l = [Foo(3), Foo(1), Foo(2)]
l.sort()
참고 URL : https://stackoverflow.com/questions/4010322/sort-a-list-of-class-instances-python
반응형
'Programing' 카테고리의 다른 글
정수를 로마 숫자로 변환-Java (0) | 2020.12.06 |
---|---|
예외 : AAPT2 오류 : 자세한 내용은 로그 확인 (0) | 2020.12.06 |
Linux에서 네트워크 포트가 열려 있는지 확인하는 방법은 무엇입니까? (0) | 2020.12.06 |
Django 프로젝트에서`from django.conf import settings`와`import settings`의 차이점은 무엇입니까? (0) | 2020.12.05 |
Atlassian Greenhopper / PivotalTracker의 무료 대안? (0) | 2020.12.05 |