Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 튜플 리스트를 두 번째 요소 기준으로 정렬하는 방법

튜플로 이루어진 리스트를 두 번째 요소(항목)를 기준으로 정렬해야 할 때는 lambda 함수sorted() 메서드를 함께 사용하면 간단하게 해결할 수 있습니다.

기본 개념 정리

리스트(List)는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 하나에 담아 저장할 수 있는 자료구조입니다. 그리고 튜플 리스트(list of tuple)란 여러 개의 튜플이 리스트 안에 포함된 형태를 말합니다.

익명 함수(Anonymous Function)는 이름 없이 정의되는 함수를 의미합니다. 일반적으로 파이썬에서는 def 키워드로 함수를 정의하지만, 익명 함수는 lambda 키워드를 사용해 정의합니다. 람다 함수는 하나의 표현식만 가질 수 있지만, 인자는 원하는 만큼 여러 개 받을 수 있으며, 해당 표현식의 결과값을 반환합니다.

sorted() 메서드는 리스트의 요소들을 정렬할 때 사용하며, key 매개변수를 통해 정렬 기준을 지정할 수 있습니다.

예제 코드

def tuple_sort(my_tuple):
    return(sorted(my_tuple, key = lambda x: x[1]))
my_tuple = [('bill', 11), ('rick', 45), ('john', 89), ('liv', 25)]
print("The list of tuple is : ")
print(my_tuple)
print("After sorting, the list of tuple becomes : ")
print(tuple_sort(my_tuple))

실행 결과

The list of tuple is :
[('bill', 11), ('rick', 45), ('john', 89), ('liv', 25)]
After sorting, the list of tuple becomes :
[('bill', 11), ('liv', 25), ('rick', 45), ('john', 89)]

코드 설명

  • tuple_sort라는 이름의 함수를 정의하고, 튜플 리스트를 매개변수로 전달받습니다.
  • 함수 내부에서는 람다 함수를 이용해 각 튜플을 순회하며, sorted() 함수로 두 번째 요소(x[1])를 기준으로 정렬합니다.
  • 정렬된 결과가 반환됩니다.
  • 튜플 리스트를 정의한 뒤 콘솔에 출력하여 정렬 전 상태를 확인합니다.
  • tuple_sort 메서드를 호출하면서 튜플 리스트를 인자로 전달합니다.
  • 정렬된 결과가 콘솔에 출력됩니다.

이처럼 key = lambda x: x[1] 구문만 활용하면 복잡한 로직 없이도 튜플 리스트를 특정 위치의 요소를 기준으로 손쉽게 정렬할 수 있습니다. 내림차순으로 정렬하고 싶다면 sorted() 함수에 reverse=True 옵션을 추가하면 됩니다.