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

Python에서 float(실수) 요소를 기준으로 튜플 정렬하는 방법

이 글에서는 float(실수) 요소를 포함한 튜플 리스트를 실수 값을 기준으로 정렬하는 방법을 다룹니다. Python의 내장 함수인 sorted()를 활용하는 방법과 함께, 정렬 기준이 되는 key 매개변수와 내림차순 정렬을 위한 reverse 옵션 사용법까지 자세히 살펴보겠습니다.

문제 예시

각 튜플은 문자열 형태의 이름과 실수 값으로 구성되어 있으며, 실수 값이 큰 순서대로 정렬해야 합니다.

입력:
tuple = [('AAA', '10.265'), ('BBB', '24.107'), ('CCC', '26.541'), ('DDD', '14.256'), ('EEE', '11.365')]

출력:
[('CCC', '26.541'), ('BBB', '24.107'), ('DDD', '14.256'), ('EEE', '11.365'), ('AAA', '10.265')]

정렬 알고리즘 설명

Python의 sorted() 함수는 다음과 같은 방식으로 동작합니다.

  1. 1단계: 정렬할 데이터(리스트)를 준비합니다.
  2. 2단계: sorted() 함수를 사용하여 정렬을 수행합니다.
  3. 3단계: 첫 번째 인자에는 시퀀스(리스트, 튜플, 문자열)나 컬렉션(딕셔너리, 셋, 프로즌셋) 등 정렬 대상 이터러블을 전달합니다.
  4. 4단계: key(선택 사항)는 정렬 비교의 기준이 되는 함수입니다. 여기서는 각 튜플의 두 번째 요소를 float으로 변환하여 비교 기준으로 사용합니다.
  5. 5단계: reverse(선택 사항)가 True이면 내림차순으로 정렬되며, 기본값은 False(오름차순)입니다.

예제 코드

아래 코드는 람다(lambda) 함수를 활용해 튜플의 두 번째 요소(실수 값)를 기준으로 내림차순 정렬을 수행합니다.

# Python code to sort a tuples by its float element
def tuplesort(A):
    return(sorted(A, key = lambda x: float(x[1]), reverse = True))

# Driver Code
A = [('Adwaita', '19.215'), ('Aadrika', '10.117'), ('Babai', '14.589'), ('Mona', '14.216'), ('Sanj', '8.365')]
print("Sort of Tuples By Its Float Number ::", tuplesort(A))

코드 핵심 포인트

  • lambda x: float(x[1]): 각 튜플의 두 번째 요소(문자열 형태의 숫자)를 실수로 변환해 정렬 키로 사용합니다.
  • reverse = True: 가장 큰 실수 값부터 내림차순으로 정렬합니다.
  • sorted()는 원본 리스트를 변경하지 않고 새로운 정렬된 리스트를 반환합니다.

실행 결과

Sort of Tuples By Its Float Number :: [('Adwaita', '19.215'), ('Babai', '14.589'), ('Mona', '14.216'), ('Aadrika', '10.117'), ('Sanj', '8.365')]

결과를 보면 실수 값이 가장 큰 'Adwaita'(19.215)부터 가장 작은 'Sanj'(8.365)까지 올바르게 내림차순 정렬된 것을 확인할 수 있습니다. 만약 오름차순 정렬이 필요하다면 reverse 인자를 생략하거나 False로 설정하면 됩니다.