다중 속성 목록 정렬
단일 속성을 기준으로 목록을 정렬하는 것은 간단합니다. 그러나 여러 속성이 정렬 순서를 지정하는 경우 더 복잡한 접근 방식이 필요합니다.
다음 목록 목록을 고려하세요.
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
이 목록을 'tall' 또는 '' 기준으로만 정렬 short' 속성은 sorted(s, key = itemgetter(1))를 사용하여 얻을 수 있습니다. 그러나 정렬 순서가 높이와 색상 속성을 모두 기반으로 해야 하는 경우에는 보다 효율적인 솔루션이 필요합니다.
다중 속성 키 기능
여러 속성으로 목록을 작성하는 경우 원하는 정렬 순서를 나타내는 튜플을 반환하는 키 함수를 정의할 수 있습니다. 예를 들어, 다음 키 기능은 먼저 높이를 기준으로 정렬한 다음 색상을 기준으로 정렬합니다.
key = lambda x: (x[1], x[2])
이 키 기능을 사용하면 목록을 다음과 같이 정렬할 수 있습니다.
s = sorted(s, key=key)
또는 itemgetter ()를 사용하면 동일한 결과를 더 효율적으로 얻을 수 있습니다.
import operator key = operator.itemgetter(1, 2)
이 핵심 기능은 더 빠르고 효과적입니다. Python 함수 호출을 포함하지 않습니다.
직접 정렬
마지막으로 sorted() 대신 sort() 메서드를 사용하고 재할당하면 위의 접근 방식을 더욱 단순화할 수 있습니다. . 이렇게 하면 새 목록을 만들 필요가 없습니다.
s.sort(key=key)
위 내용은 Python에서 여러 속성을 기반으로 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!