> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 여러 속성을 기반으로 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?

Python에서 여러 속성을 기반으로 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-11 18:02:13
원래의
354명이 탐색했습니다.

How Can I Efficiently Sort a List Based on Multiple Attributes in Python?

다중 속성 목록 정렬

단일 속성을 기준으로 목록을 정렬하는 것은 간단합니다. 그러나 여러 속성이 정렬 순서를 지정하는 경우 더 복잡한 접근 방식이 필요합니다.

다음 목록 목록을 고려하세요.

[[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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿