본문 바로가기
Programming Language/Python

[Python] 파이썬 문자열 정렬 시 sort()에서 사용하는 key 인자

by 뒹굴거리는프로도 2024. 1. 5.
반응형

 

 


Python의 sort() 함수에서 'key' 인자를 사용하면 정렬 기준을 지정할 수 있습니다.

이 key 인자에는 함수가 들어갑니다. 

함수가 직접 리스트의 요소를 받은 후, 정렬에 사용할 key를 반환합니다.

 

1. key = len
2. key = lambda
3. key = str.lower
4. key = 사용자 정의 함수

 

 


key = len


문자열을 길이에 따라 리스트를 정렬하고 싶다면 len() 함수를 key 인자에 넣으면 됩니다.

list = ["aaa", "bbbb", "ccccc"]

list.sort(key=len)

 

 

key = lambda


key의 인자로 lambda 함수를 사용하여 요소들을 정렬할 수 있습니다.

lambda는 파이썬에서 사용하는 익명 함수를 지칭합니다.

아래 코드는 element 리스트의 Fruit 객체들을 cost 속성에 따라 오름차순으로 정렬합니다.

class Fruit:
    def __init__(self, name, cost):
        self.name = name
        self.cost = cost

element = [Fruit("apple", 1000), Fruit("banana", 2000), Fruit("mango", 4500)]

element.sort(key=lambda x: x.cost)

 

 

key = str.lower


문자열을 영소문자 기준으로 정렬하고 싶을 때 str.lower를 key 인자에 넣으면 됩니다.

sample = ["banana", "Apple", "cherry"]

sample.sort(key=str.lower)

 

 

key = 사용자 정의 함수


사용자가 직접 작성한 함수를 key 인자에 넣을 수 있습니다.

#사용자 지정 함수
def user_func(s):
    return int(''.join(filter(str.isdigit, s)))

#정렬할 요소
strings = ["a1", "b2", "c3"]

#정렬
strings.sort(key=user_func)

 

 

 


반응형