반응형
Contents
파이썬에서 리스트(List)를 정렬할 때 주로 사용하는 함수는 sort()와 sorted()가 있다. 두 개의 함수는 둘 다 정렬을 할 때 사용하지만 조금씩 사용하는 방법의 차이가 있다. 두 함수의 차이점에 대해서 알아보자.
sorted
sorted()의 경우 정렬할 때 쓰는 함수이며, 숫자 뿐만 아니라 문자까지도 정렬이 가능하다. 그러나, 문자를 정렬할 경우 리스트 구조로 반환이 되기 때문에 join 함수를 사용해서 다시 합쳐주어야 한다.
a = [2, 5, 1, 9, 7]
sorted(a)
# [1, 2, 5, 7, 9]
b = 'zbdaf'
sorted(b)
# ['a', 'b', 'd', 'f', 'z']
''.join(sorted(b))
# 'abdfz'
sort
sort 함수는 sorted 함수와는 달리 반환되는 값이 없다. 이는 제자리 정렬(In-place Sort)이기 때문이다. 제자리 정렬은 리스트 자체를 정렬하는 것으로 입력을 출력으로 덮어쓰기 때문에 별도의 추가 공간이 필요하지 않고, 반환되는 값이 없다. 따라서 sorted 함수와는 다르기에 주의해서 사용하여야 한다.
a.sort()
a = a.sort() # 아무런 값도 반환되지 않는다.
sort, sorted 함수는 내부에 key라는 인자가 존재해서, 정렬 기준을 본인이 원하는 형태로 지정해서 정렬하는 것도 가능하다. 원래 있는 함수를 사용해도 되고, 본인이 직접 만든 함수를 지정해도 무방하다.
a = ['aaa', 'bb', 'c']
sorted(a, key=len)
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] 공원 산책 - Python (0) | 2023.08.24 |
---|---|
[프로그래머스] 달리기 경주 - Python (0) | 2023.08.24 |
[Algorithm] List, Dictionary의 시간 복잡도 (0) | 2022.08.18 |
[Python] python에서 pickle file 다루기 (0) | 2022.06.20 |
array와 asarray의 차이 (0) | 2022.05.09 |