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

Python – 리스트를 일의 자릿수 기준으로 정렬하는 방법

리스트의 요소들을 일의 자릿수를 기준으로 정렬해야 하는 경우가 있습니다. 이럴 때는 하나의 매개변수를 받는 함수를 정의하고, str() 변환과 음수 인덱싱(negative indexing)을 활용하여 일의 자릿수 값을 추출하는 방식으로 해결할 수 있습니다.

예제 코드

다음은 리스트를 일의 자릿수 기준으로 정렬하는 전체 예제입니다.

def unit_sort(element):
    return str(element)[-1]

my_list = [716, 134, 343, 24742]

print("The list is :")
print(my_list)

my_list.sort(key=unit_sort)

print("The result is :")
print(my_list)

실행 결과

The list is :
[716, 134, 343, 24742]
The result is :
[24742, 343, 134, 716]

코드 설명

  • unit_sort라는 이름의 함수를 정의합니다. 이 함수는 리스트의 각 요소를 매개변수로 받아, 해당 요소를 문자열로 변환한 뒤 마지막 문자, 즉 일의 자릿수를 반환합니다.

  • 정렬 대상이 될 리스트를 정의하고, 콘솔에 출력하여 원본 상태를 확인합니다.

  • 리스트의 sort() 메서드를 호출하면서 key 인자에 앞서 정의한 unit_sort 함수를 지정합니다. 이렇게 하면 실제 값이 아닌 일의 자릿수를 기준으로 정렬이 수행됩니다.

  • 정렬이 완료된 최종 결과가 콘솔에 출력됩니다.

핵심 포인트

str(element)[-1]에서 음수 인덱스 -1은 문자열의 마지막 문자를 가리킵니다. 숫자를 문자열로 변환하면 각 자릿수에 인덱스로 접근할 수 있기 때문에, 복잡한 수학 연산 없이도 손쉽게 일의 자릿수를 얻을 수 있다는 점이 이 방법의 장점입니다.