리스트의 각 문자열을 마지막(뒤) 문자를 기준으로 정렬해야 하는 경우가 있습니다. 이럴 때는 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 옵션을 함께 사용하면 됩니다.