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