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

Python – 문자열 리스트를 마지막 문자 기준으로 정렬하는 방법

리스트의 각 문자열을 마지막(뒤) 문자를 기준으로 정렬해야 하는 경우가 있습니다. 이럴 때는 sort() 메서드의 key 매개변수에 음수 인덱싱(negative indexing)을 활용하는 함수를 지정하면 간단하게 해결할 수 있습니다.

예제 코드

아래는 마지막 문자를 기준으로 리스트를 정렬하는 예제입니다.

def get_rear_position(element):
    return element[-1]

my_list = ['python', 'is', 'fun', 'to', 'learn']

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

my_list.sort(key = get_rear_position)

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

실행 결과

The list is :
['python', 'is', 'fun', 'to', 'learn']
The result is :
['python', 'fun', 'learn', 'to', 'is']

코드 설명

  • get_rear_position 함수는 리스트의 요소를 매개변수로 받아, 음수 인덱싱(element[-1])을 사용해 해당 문자열의 마지막 글자를 반환합니다.

  • 문자열로 구성된 리스트를 정의하고 콘솔에 출력하여 원본 상태를 확인합니다.

  • sort() 메서드의 key 인자에 앞에서 정의한 함수를 전달하면, 파이썬은 각 요소의 마지막 문자를 비교 기준으로 삼아 오름차순 정렬을 수행합니다.

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

추가 팁

별도의 함수를 정의하지 않고 lambda 표현식을 사용하면 코드를 더욱 간결하게 만들 수 있습니다.

my_list.sort(key=lambda x: x[-1])

또한 내림차순으로 정렬하고 싶다면 sort(key=get_rear_position, reverse=True)처럼 reverse=True 옵션을 함께 사용하면 됩니다.