Python의 `sorted()` 함수에서 특정 키의 정렬 순서를 바꾸는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-02 17:38:29
원래의
422명이 탐색했습니다.

How to Reverse the Sort Order for Specific Keys in Python's `sorted()` Function?

Python에서 여러 키가 있는 목록 정렬: 하나를 역순으로

여러 기준으로 목록을 구성할 때 Python에 내장된 정렬 () 함수는 다양한 도구를 제공합니다. 그러나 특정 키에 대한 정렬 순서를 역전시키는 요구 사항을 항상 충족하지 못할 수도 있습니다.

문제 이해

튜플 목록이 있는 시나리오를 생각해 보세요. 두 요소 포함:

myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
로그인 후 복사

두 개의 키를 사용하여 이 목록을 정렬할 수 있습니다. 하나는 대소문자를 구분합니다. (y[0].lower())이고 다른 하나는 역순입니다(y[1]). 다음 코드를 사용하면 전자를 얻을 수 있습니다.

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
로그인 후 복사

그러나 정렬 순서를 반대로 하려면 reverse = True 인수를 추가할 수 있습니다.

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
로그인 후 복사

안타깝게도 이렇게 하면 정렬이 반대로 됩니다. 두 키를 모두 주문하세요.

문제 해결 문제

이러한 요구 사항을 충족하기 위해 Python에서 람다 함수의 강력한 기능을 활용할 수 있습니다. 정렬 키 용어 앞에 음수 기호(-)를 삽입하면 해당 특정 키에 대한 정렬 순서가 효과적으로 반전됩니다. 예를 들면 다음과 같습니다.

sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))
로그인 후 복사

이 코드에서 -y[1]은 두 번째 키(y[1])의 정렬 순서를 바꾸는 반면, 첫 번째 키(y[0].lower())는 정렬 순서를 바꿉니다. )는 대소문자를 구분하지 않고 오름차순으로 유지됩니다.

추가 예시

다음은 몇 가지 예입니다. 다양한 정렬 순서 조합을 사용한 추가 예:

# Reverse both keys
sortedList = sorted(myList, key = lambda y: (-y[0].lower(), -y[1]))

# Reverse only the first key
sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))
로그인 후 복사

위 내용은 Python의 `sorted()` 함수에서 특정 키의 정렬 순서를 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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