여러 필드를 기준으로 Python 목록 정렬
단일 필드를 기준으로 Python 목록을 정렬하는 것은 일반적인 작업이지만, 필요한 경우 어떻게 해야 합니까? 여러 필드로 정렬하시겠습니까?
정렬된 CSV에서 생성된 다음 목록을 고려해 보세요. file:
list1 = sorted(csv1, key=operator.itemgetter(1))
두 번째 필드를 기준으로 목록을 정렬합니다. 하지만 먼저 첫 번째 필드를 기준으로 정렬한 다음 두 번째 필드를 기준으로 정렬하려면 어떻게 해야 할까요?
해결책은 람다 함수를 sorted() 함수의 핵심 인수로 사용하는 것입니다. . 람다 함수는 간단한 정렬 기준을 정의하는 데 사용할 수 있는 익명 함수입니다. 이 경우 람다 함수는 목록의 요소를 나타내는 단일 인수를 사용하고 정렬하려는 두 필드가 포함된 튜플을 반환합니다.
예를 들어 목록을 다음과 같이 정렬하려면 첫 번째 및 두 번째 필드에는 다음 람다 함수를 사용할 수 있습니다.
sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
이 람다 함수는 목록 요소의 첫 번째 및 두 번째 필드가 포함된 튜플을 반환합니다. 그런 다음 목록은 이 튜플을 기준으로 정렬되어 목록이 먼저 첫 번째 필드를 기준으로 정렬된 다음 두 번째 필드를 기준으로 정렬됩니다.
람다 함수를 사용하여 한 필드는 오름차순으로, 다른 필드는 내림차순으로 정렬할 수도 있습니다. 예를 들어 첫 번째 필드를 오름차순으로, 두 번째 필드를 내림차순으로 목록을 정렬하려면 다음 람다 함수를 사용할 수 있습니다.
sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
이 람다 함수는 목록 요소의 첫 번째 필드를 포함하는 튜플을 반환하고 두 번째 필드의 음수입니다. 그런 다음 목록은 이 튜플을 기준으로 정렬되어 첫 번째 필드는 오름차순, 두 번째 필드는 내림차순으로 목록이 정렬됩니다.
위 내용은 여러 필드로 Python 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!