[Python3] 정렬, 람다 (key=lambda)

Song_Song·2021년 5월 16일
1

파이썬에서는 모든 iterable에 적용되는 sorted() 함수와 리스트에서만 사용할 수 있는 sort() 함수가 있다.

sorted()

sorted(<list> , key = <function> , reverse = True|False))

sorted() 함수는 원본이 바뀌지 않는다. key 를 사용하여 정렬 기준을 정할 수 있다.


key = lambda 사용법

이중 리스트일 때, 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()

list에서만 사용할 수 있는 sort() 함수는 원본의 값이 바뀌고, sorted() 보다 조금 빠르다는 장점이 있다.

test = [3,4,1,2,5]
test.sort()
print(test)

출력

[1, 2, 3, 4, 5]

profile
성장을 위한 정리 블로그

0개의 댓글