취준일기/코딩테스트
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,,,)
반응형