파이썬에서는 모든 iterable에 적용되는 sorted() 함수와 리스트에서만 사용할 수 있는 sort() 함수가 있다.
sorted(<list> , key = <function> , reverse = True|False))
sorted() 함수는 원본이 바뀌지 않는다. key 를 사용하여 정렬 기준을 정할 수 있다.
이중 리스트일 때, key에 lambda를 사용하여 정렬 기준을 설정할 수 있다.
람다식은 lambda 인자 : 표현식 형태로 사용한다.
아래 사용된 key=lambda x : x[0] 는 아래 코드와 같다.
def lambda(x):
return x[0]
list[0]를 기준으로 정렬
list_ = [[3, 'three'],[4, 'four'],[2, 'two'],[1, 'one']] print(sorted(list_, key=lambda x : x[0]))
출력
[[1, 'one'], [2, 'two'], [3, 'three'], [4, 'four']]
문자열의 길이를 기준으로 정렬
list = ['my', 'name', 'is', 'song'] print(sorted(list, key=lambda x : len(x)))
출력
['is', 'my', 'name', 'song']
list에서만 사용할 수 있는 sort() 함수는 원본의 값이 바뀌고, sorted() 보다 조금 빠르다는 장점이 있다.
test = [3,4,1,2,5] test.sort() print(test)
출력
[1, 2, 3, 4, 5]