취준일기/코딩테스트

Python - sort() / sorted()

zooonique 2021. 8. 18. 13:47
반응형

python에서 엄청 큰 강점 중에 하나가 정렬 함수라고 생각한다.

 

문제의 조건에 따라 정렬하는 함수를 따로 구현해야하는 경우도 있지만,

 

굉장히 자주 쓰이는 sort()와 sorted()함수에 대해 간단히 정리해놓으면 좋을 것 같다.

 


sort()함수는 기본적으로 오름차순으로 정렬해준다.

 

return 값이 없으므로 새로운 변수에 초기화하는 실수를 조심해야한다.

(이 부분이 sorted() 함수와의 가장 큰 차이점이다.)

 

reverse를 통해 역순 정렬도 가능하다.

 

sort() 함수는 리스트를 기본적으로 정렬할 수 있는데, 리스트 안 문자열, 튜플, 딕셔너리 모두 정렬이 가능하다.

 

문자열은 알파벳 순서로 정렬이 가능하다.

튜플도 마찬 가지로 오름차순으로 정렬이 된다.

 

리스트 내의 각 튜플에 첫 인덱스를 비교하여 오름차순으로 정렬한다.

 

딕셔너리를 정렬할 때는 특정 기준을 명시해줘야 한다.

 

여기서 사용되는 것이 정렬의 기준을 만들어주는 lambda이다.

 

형태는 list.sort(key=lambda x : 기준1, 기준2,,,)

 

기준을 늘려가는 것은 본인의 재량이고 이를 통해 앞서서 사용했던 튜플내의 두번째 값을 비교하여 정렬할 수 있다.

 

 

모든 문제 상황이 알파벳 순, 오름차순, 내림차순이 아닐 수 있기 때문에 해당 함수의 숙지가 필요해보인다.

 

sorted() 함수로 lambda를 사용할 때의 형태는 New_list = sorted(Origin_list, key=lambda x: 기준1, 기준2,,,)

 

반응형