안녕하세요. BlockDMask입니다.
오늘은 리스트 본체를 정렬하는 sort 함수에 대해서 이야기해볼까 합니다.
파이썬 sort 하면서 오름차순 혹은 내림차순으로 정렬하는 것도 설명드리겠습니다.
파이썬 sort 함수와 비슷하지만 다른 sorted 함수가 궁금하신 분들은 [바로가기]
파이썬 리스트에 대해서 더 궁금하시다면 리스트 총 정리 1편[바로가기], 정리 2편[바로가기]도 있습니다.
<목차>
1. 파이썬 sort 함수 설명과 예제
2. 파이썬 리스트 오름차순, 내림차순 정렬 (reverse 매개변수)
1. sort 함수 설명, 리스트 정렬 함수
1-1) sort 함수 기본
List.sort()
list.sort() 메서드는 list 객체 자체를 정렬해주는 함수입니다.
리스트에만 사용이 가능합니다. list 객체의 멤버 함수, 즉 메서드입니다.
list.sort() 함수는 기본적으로 리스트를 오름차순으로 정렬해주는 기능을 합니다.
**추가 설명
새로운 정렬된 리스트를 반환하는 함수는 sorted 함수이고,
리스트 자체를 정렬시켜버리는 것은 sort 함수입니다.
1-2) sort 함수 예제
list_num = [33, 2, 81, -77, 44, 1, 10, 99, 5, 0, -2]
list_str1 = ['b', 'l', 'o', 'c', 'k', 'd', 'm', 'a', 's', 'k']
list_str2 = ['B', 'l', 'o', 'c', 'k', 'D', 'M', 'a', 's', 'k']
# 숫자 리스트 정렬
print("1. 숫자 리스트 정렬")
list_num.sort()
print(list_num)
# 문자열 리스트 정렬1 (소문자만)
print("\n2. 소문자 문자열 리스트 정렬")
list_str1.sort()
print(list_str1)
# 문자열 리스트 정렬2 (대/소문자 포함)
print("\n3. 대소문자 문자열 리스트 정렬")
list_str2.sort()
print(list_str2)
숫자리스트.sort() 의 결과
숫자리스트를 보면 음수, 0, 양수 이렇게 작은 수부터 큰 수로 오름차순으로 정렬해주는 것을 볼 수 있습니다.
소문자문자리스트.sort() 의 결과
우리가 알고 있는 알파벳순 a, b, c, d, e 순서로 잘 정렬되는 것을 볼 수 있습니다.
대소문자문자리스트.sort() 결과
대소문자 리스트.sort()는 대문자 ABCD 순으로 다 나온 후에, 소문자 abcd 순으로 정렬이 되는 것을 볼 수 있습니다.
이는, 문자 자체를 아스키코드 값에 대응해서 숫자로 판단하기 때문인데요.
아스키코드표에 보면 대문자 A는 65번에 해당하고 소문자 a는 97번에 해당합니다.
(구글에 '아스키코드표'라고 검색하면 표가 나옵니다)
즉, A~Z는 65~90 대역대에 존재하고 소문자 a~z는 97~122에 존재하게 됩니다.
여기서 문자의 sort() 기준은 아스키코드표에 각 문자에 대응하는 숫자에 따라 판단을 하기 때문에 65~90에 있는 대문자들을 쫘르륵 정렬한 후에, 97~122번에 있는 소문자가 오게 됩니다.
2. 파이썬 오름차순, 내림차순 정렬
리스트.sort() 함수에는 reverse 옵션(매개변수)이 존재합니다.
디폴트는 리스트.sort(reverse=False) 인 게 디폴트여서 리스트가 오름차순으로 정렬이 되는 것이고
리스트.sort(reverse=True)로 변경하면 리스트가 내림차순으로 정렬이 됩니다.
a = [3, 2, 8, 4, 1, 10, 99, 5]
b = [3, 2, 8, 4, 1, 10, 99, 5]
c = [3, 2, 8, 4, 1, 10, 99, 5]
# 기본값 (오름차순)
a.sort()
print("a.sort()")
print(a)
# 오름차순
b.sort(reverse=False)
print("\nb.sort(reverse=False)")
print(b)
# 내림차순
c.sort(reverse=True)
print("\nc.sort(reverse=True)")
print(c)
위처럼 세 가지 동일한 리스트가 있다고 할 때
sort(), sort(reverse=False), sort(reverse=True)로 정렬을 해보았습니다.
결괏값을 보셨다시피
sort(), sort(reverse=False)가 오름차순으로 정렬되고
sort(reverse=True)가 리스트를 내림차순으로 정렬하는 것을 볼 수 있습니다.
이렇게 오늘은 파이썬 리스트 자체를 정렬하는 sort 함수에 대해서 알아보았습니다.
오늘도 읽어주셔서 감사합니다.
'<개인공부> > [Python]' 카테고리의 다른 글
[python] 파이썬 find 함수에 대해서 (0) | 2021.10.07 |
---|---|
[python] 파이썬 공백 제거 (replace, strip) 2가지 방법 (0) | 2021.10.05 |
[python] 파이썬 딕셔너리 정렬 (0) | 2021.09.15 |
[python] 파이썬 전역변수, 지역변수 정리 (0) | 2021.09.13 |
[python] 파이썬 and, or, not 논리 연산자 (10) | 2021.09.08 |
[python] 파이썬 평균 구하기 4가지 방법 (0) | 2021.07.26 |
[python] 파이썬 리스트 합치기 (+, extend, sum) (0) | 2021.07.23 |
[python] 파이썬 replace 설명 및 예제 (0) | 2021.07.19 |