Programming Languages/Python

[Python] 파이썬 정렬함수 sort, sorted에서 reverse, key lambda 사용하기

마크투비 2021. 9. 4. 18:56

파이썬의 내장함수 sortsorted는 모두 reverse, key를 파라미터로 갖는다.

1. reverse

기본값은 reverse=False(오름차순)이다.

내림차순 정렬을 하고 싶을 때 매개변수로 reverse=True를 해주면 된다.

>>> num_list = [15, 22, 8, 79, 10]
>>> num_list.sort(reverse=True)
>>> print(num_list)
[79, 22, 15, 10, 8]

>>> print(sorted(['좋은하루','good_morning','굿모닝','niceday'], reverse=True))
['좋은하루', '굿모닝', 'niceday', 'good_morning']

 

2. key

정렬을 목적으로 하는 함수를 값으로 넣는다. 주로 lambda를 이용한다.

key값을 기준으로 정렬되고 기본값은 오름차순이다. lambda에서 여러 정렬 기준을 두고 정렬 방향 역시 오름차순, 내림차순으로 다양할 때는 key=lambda x: (x[0], -x[1]) 이런 식으로 -를 이용하면 된다.

>>> str_list = ['좋은하루','good_morning','굿모닝','niceday']
>>> print(sorted(str_list, key=len))  # 함수
['굿모닝', '좋은하루', 'niceday', 'good_morning']

>>> print(sorted(str_list, key=lambda x : x[1]))  # 람다
['niceday', 'good_morning', '굿모닝', '좋은하루']

 

백준의 10825번에서 sort()의 매개변수를 이용해서 정렬하는 것을 연습해볼 수 있다.