728x90

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)가 리스트를 내림차순으로 정렬하는 것을 볼 수 있다.

 

728x90

'Python' 카테고리의 다른 글

[python] .isdigit()  (0) 2023.01.22
[python] 파이썬 람다(lambda) 함수  (0) 2023.01.21
[python] 파이썬 map 함수  (0) 2023.01.21
[Python] 정렬 - sort() vs sorted()  (0) 2023.01.21
[python] 파이썬 평균 구하기 4가지 방법  (0) 2023.01.20

+ Recent posts