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 |