본문 바로가기
백준

sort()함수와 sorted()함수

by sxlvxrjxms2s2itsmes2s2 2023. 1. 18.

sort함수? sorted함수?

 

#1 sort함수

list.sort() 메서드는 list 객체 자체를 정렬해주는 함수이다. (리스트에만 사용가능, 리스트 객체의 멤버함수이기 때문)

sort함수는 기본적으로 리스트를 오름차순으로 정렬해주는 기능을 한다.

 

numbers = [2, 5, 1, -9, -83, 56, 23, 210]
numbers.sort()
print(numbers)

#[-83, -9, 1, 2, 5, 23, 56, 210]

 

소문자는 abcd 순으로 정렬된다.

대문자는 ABCD 순으로 모두 나온 후 소문자 abcd 순으로 정렬된다.

 

내림차순으로 정렬하고 싶을 때는 sort(reverse=True)라고 적는다.

리스트.sort(reverse=False)가 디폴트 값이므로 True로 적어야 내림차순으로 정렬이 된다.

 

numbers = [2, 5, 1, -9, -83, 56, 23, 210]
numbers.sort()
print(numbers)
#[-83, -9, 1, 2, 5, 23, 56, 210]

#오름차순
numbers.sort(reverse=False)
print(numbers)
#[-83, -9, 1, 2, 5, 23, 56, 210]

#내림차순
numbers.sort(reverse=True)
print(numbers)
#[210, 56, 23, 5, 2, 1, -9, -83]

 

#2 sorted함수

 

sorted()라는 함수는 기존의 리스트를 변경하는 것이 아니라 정렬된 새로운 리스트를 반환한다.

 

>>> sorted([4, 2, 3, 5, 1])
[1, 2, 3, 4, 5]

 

리스트의 메소드인 sort()를 사용하여도 정렬이 된다. 이 경우에는 리스트 자체를 변경해 버린다.

 

numbers = [2, 5, 1, -9, -83, 56, 23, 210]
numbers.sort()
print(numbers)

#[-83, -9, 1, 2, 5, 23, 56, 210]

 

일반적으로 이것보다는 내장함수인 sorted()가 더 편리하다.

sort()는 리스트만을 위한 함수인 반면, sorted()는 리스트 뿐만 아닌 딕셔너리 객체도 받을 수 있다.

 

>>> sorted({3: 'D', 2: 'B', 5: 'B', 4: 'E', 1: 'A'})
[1, 2, 3, 4, 5]

 

sorted() 함수도 reverse 매개변수를 받는다. 또한 'key'를 통해 원하는 정렬 키를 설정할 수 있다.

 

array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]
array.sort(key = lambda x:x[0]) # array.sort() 와 동일.
print("0번째 값(알파벳)에 의하여 정렬된 array : ", array)
# > array :  [['a', 1], ['b', 3], ['c', 4], ['d', 2]]

array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]
array.sort(key = lambda x:x[1])
print("1번째 값(숫자)에 의하여 정렬된 array : ", array)
# > array :  [['a', 1], ['d', 2], ['b', 3], ['c', 4]]

'백준' 카테고리의 다른 글

백준 2750 [파이썬] (len,버블,삽입)  (0) 2023.01.26
백준 2587 [파이썬]  (0) 2023.01.18
백준 2738 [파이썬] (map)  (0) 2023.01.15
백준 2581 [파이썬]  (0) 2023.01.15
백준 1316 [파이썬] (.count)  (0) 2022.12.21