목록 정렬을 위한 sorted(key=lambda: ...)` 구문 이해
Python의 sorted() 함수는 다음을 제공합니다. 목록을 정렬하는 간결한 방법. 중첩된 요소나 튜플이 포함된 복잡한 목록을 정렬할 때 키 인수를 사용하여 정렬을 사용자 정의할 수 있습니다.
Lambda 함수 구문
키 인수의 람다 함수는 목록의 각 요소에 대한 정렬 기준을 도출하는 방법을 지정하는 익명 함수입니다. 구문은 다음과 같습니다.
lambda input_variable(s): expression
예:
<code class="python">f = lambda x: x + 1 f(10) # Returns 11</code>
sorted()의 키 함수
sorted()의 컨텍스트에서 key=lambda로 지정된 키 함수 목록의 각 요소에 적용되며 결과는 정렬 순서를 결정하는 데 사용됩니다. 람다 함수에서 반환된 값은 정렬을 위한 대용 값 역할을 합니다.
이 메커니즘을 사용하면 요소 자체가 아닌 각 요소의 특정 속성이나 특성을 기반으로 원본 목록을 정렬할 수 있습니다. 예를 들어 두 번째 요소를 기준으로 튜플 목록을 정렬할 수 있습니다.
<code class="python">mylist = [(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)] sorted(mylist, key=lambda x: x[1]) # Output: [(6, 2, 8), (3, 5, 8), (6, 8, 5), (2, 9, 4)] # Sorted by the second element of each tuple</code>
부울 값 및 정렬
키 함수가 부울 값을 반환하면 정렬은 값의 진실성을 기반으로 합니다. True 값을 가진 요소는 False 값을 가진 요소 앞에 배치됩니다. 그러나 동일한 진실 값을 가진 요소의 원래 순서는 유지됩니다.
<code class="python">mylist = [3, 6, 3, 2, 4, 8, 23] sorted(mylist, key=lambda x: x % 2 == 0) # Output: [3, 3, 23, 6, 2, 4, 8] # Odd numbers (False) come before even numbers (True) # Even numbers remain in their original order</code>
복잡한 데이터 구조에 키 사용
키 기능은 다음과 같습니다. 특정 속성을 추출하고 비교하기 위해 복잡한 데이터 구조와 함께 사용됩니다. 예를 들어 학생을 나타내는 사전 목록을 생각해 보세요.
<code class="python">students = [ {'name': 'John', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Bob', 'age': 18}, ]</code>
sorted() 함수를 사용하여 학생을 연령별로 정렬하려면 람다 함수와 함께 키 인수를 사용할 수 있습니다.
<code class="python">sorted(students, key=lambda x: x['age'])</code>
이 람다 함수는 각 사전에서 age 속성을 추출하여 반환하므로 요소를 나이를 기준으로 정렬할 수 있습니다.
위 내용은 Python에서 목록 정렬을 위해 `sorted(key=lambda: ...)` 함수는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!