반응형
👀 파이썬의 정렬 함수 ( sort() / sorted() ) 👀
1. list.sort() : 변수 자체를 수정, 함수 반환값 None 값. key 설정 가능, reverse(내림차순) 가능
2. sorted(list) : 반환값 list 새로운 변수에 할당 가능, key 설정 가능, reverse(내림차순) 가능
파이썬의 리스트가 자체적으로 제공하는 정렬 함수에는 2가지 종류가 있습니다.
이 2가지 종류의 함수에 대하여 각각의 특징을 나열해보도록 하겠습니다.
1. Sort() → list.sort()
- 리스트를 제자리에서 수정 -> 원래 변수가 수정됨.
- 반환값은 None -> 따라서 arr = list.sort() 실행 시 arr에는 None값 저장됨.
array = [1, 5, 3, 9, 7, 2]
array2 = array.sort()
print("array가 직접 정렬이 됩니다 :",array)
# > array가 직접 정렬이 됩니다 : [1, 2, 3, 5, 7, 9]
print("array2에는 정렬된 array가 들어가지 않습니다 :",array2)
# > array2에는 정렬된 array가 들어가지 않습니다 : None
- parameter '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]]
- 2차원의 경우, sort() 그냥 사용시 첫 번째 키 값이 동일하면 자동으로 그 다음 키 값에 따라 정렬
array = [['a', 1], ['b', 4], ['b', 3]]
array.sort()
print("알파벳 b를 잘 보세요 :", array)
# > 알파벳 b를 잘 보세요 : [['a', 1], ['b', 3], ['b', 4]]
- parameter 'reverse=True'를 통해 내림차순으로 정렬할 수 있음. (오름차순 역순이므로 내림차순이 됨)
array = [1, 5, 3, 9, 7, 2]
array.sort(reverse=True)
print("정렬 후 역순(내림차순) : ", array)
# > 정렬 후 역순(내림차순) : [9, 7, 5, 3, 2, 1]
2. Sorted() → sorted(list)
- 반환값이 배열값: 변수에 저장 가능! 원래 변수는 수정되지 않음.
array = [1, 5, 3, 9, 7, 2]
array2 = sorted(array)
print("array는 정렬이 되지 않습니다 :",array)
# > array는 정렬이 되지 않습니다 : [1, 5, 3, 9, 7, 2]
print("array2에는 정렬된 array가 들어갑니다 :",array2)
# > array2에는 정렬된 array가 들어갑니다 : [1, 2, 3, 5, 7, 9]
- Sort와 마찬가지로 key 값, reverse 값 설정 가능
array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]
array2 = sorted(array, key = lambda x:x[1])
print("1번째 값을 key 값으로 정렬 :", array2)
# > 1번째 값을 key 값으로 정렬 : [['a', 1], ['d', 2], ['b', 3], ['c', 4]]
array3 = sorted(array, reverse = True)
print("내림차순으로 정렬 :", array3)
# > 내림차순으로 정렬 : [['d', 2], ['c', 4], ['b', 3], ['a', 1]]
sort()와 sorted() 모두 기본 정렬은 오름차순으로 정렬되며, 'reverse = True' 사용 시 내림차순으로 정렬이 됩니다.
두 함수의 핵심은, sort() 함수는 배열 자체를 정렬하므로 전역변수를 클래스 내부에서 정렬해서 저장할 때 유용할 것 같고, sorted() 함수는 배열을 복사해서 정렬하여 새로운 변수로 뽑아낼 수 있으므로 저장된 배열 변수를 가져다가 연산을 진행한다던가 할 때 유용하게 사용할 수 있을 것 같습니다😊
<참고>
docs.python.org/ko/3/howto/sorting.html
반응형
'Language > Python' 카테고리의 다른 글
[Python] upper(), lower() 함수 / 파이썬 문자열 대문자 소문자 변환 (0) | 2021.01.12 |
---|---|
[Python] islower(), isupper() 함수 / 파이썬 문자열 대문자 소문자 체크 (0) | 2021.01.12 |
[Python] isalpha(), isdigit() 함수 / 문자열 체크하기 (0) | 2021.01.12 |
[Python] 파이썬 배열 원소 세는 방법 count() / collections.Counter() (0) | 2020.12.27 |
[Python] 리스트/배열 역순 정렬 ( reverse() / reversed() ) (0) | 2020.12.24 |