파이썬 리스트 정렬 - sort()
리스트 개체에는 기본적으로 리스트를 숫자, 오름차순으로 정렬하는 sort() 메서드가 있다:
a = ["orange", "mango", "kiwi", "pineapple", "banana"] print(a) a.sort() print(a) |
a.sort()를 실행하면 기본적으로 문자는 오름차순으로 정렬한다.
위의 코드를 실행하면 아래 그림과 같다.
리스트를 숫자로 정렬한다:
a = [100, 50, 65, 82, 23] print(a) a.sort() print(a) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 리스트 정렬 - 내림차순
내림차순 정렬하려면 키워드 인수 reverse = True:
a = ["orange", "mango", "kiwi", "pineapple", "banana"] print(a) a.sort(reverse = True) print(a) |
a.sort(reverse = True)는 내림차순으로 a리스트를 정렬하라는 메소드이다. 위의 코드를 실행하면 아래 그림과 같다.
숫자 항목을 가진 리스트를 내림차순하면 아래 예제와 같다.
a = [100, 50, 65, 82, 23] print(a) a.sort(reverse = True) print(a) |
a.sort(reverse = True)는 내림차순으로 a리스트를 정렬하라는 메소드이다. 위의 코드를 실행하면 아래 그림과 같다.
리스트 파이썬 정렬 함수 - sort()
키워드 인수 key = function을 사용하여 자신만의 기능을 사용자 정의할 수도 있다.
이 함수는 리스트 정렬에 사용될 숫자(가장 낮은 숫자 먼저)를 반환한다:
숫자가 50에 가까운 정도에 따라 리스트를 정렬한다:
def myfunc(n): return abs(n - 50) a = [100, 50, 65, 82, 23] print(a) a.sort(key = myfunc) print(a) |
첫 번재 리스트 항목 abs(100-50) : 50
두 번재 리스트 항목 abs(50-50) : 0
세 번재 리스트 항목 abs(65-50) : 15
네 번재 리스트 항목 abs(82-50) : 32
다섯 번재 리스트 항목 abs(23-50) : 27
결과값이 0(50), 15(65), 27(23), 32(82), 50(100)순으로 정렬이 되므로 [50, 65, 23, 82, 100] 으로 정렬이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 리스트 정렬 - 대소문자 정렬
기본적으로 sort() 메서드는 대소문자를 구분하므로 모든 대문자가 소문자 앞에 정렬된다:
대소문자 구분 정렬은 예상치 못한 결과를 초래할 수 있다:
a = ["banana", "Orange", "Kiwi", "cherry"] print(a) a.sort() print(a) |
위의 코드를 실행하면 아래 그림과 같다.
다행히 리스트를 정렬할 때 내장된 기능을 핵심 기능으로 사용할 수 있다.
따라서 대소문자를 구분하지 않는 정렬 기능을 사용하려면 str.lower를 키 함수로 사용한다:
a = ["banana", "Orange", "Kiwi", "cherry"] print(a) a.sort(key = str.lower) print(a) |
key = str.lower로 리스트 a 항목을 모두 소문자로 변형한 후에 정렬을 한다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 리스트 정렬 - 역순
알파벳에 상관없이 목록의 순서를 뒤집고 싶다면 어떻게 해야 할까?
reverse() 메서드는 요소의 현재 정렬 순서를 뒤집는다.
a = ["banana", "Orange", "Kiwi", "cherry"] print(a) a.reverse() print(a) |
a.reverse()함수는 리스트 항목을 역순으로 배치한다.
위의 코드를 실행하면 아래 그림과 같다.
지금까지 다양한 파이썬 리스트 정렬 방법에 대해서 살펴보았다.
기본적으로 sort() 메소드를 사용하며 오름차순이이 기보이며 내림차순으로 정렬을 하려면 reverse=True를 활용한다.
또한 정렬을 나만의 정렬로 하기 원한다면 key=function을 정의하여 정렬을 할 수 있다. 역순으로 정렬을 하고자 한다면 reverse() 메소드를 사용하면 된다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 리스트 - join list (0) | 2023.10.13 |
---|---|
파이썬 리스트 컴프리헨션(Python List Comprehension) (1) | 2023.10.12 |
파이썬 리스트 - for 루프 (0) | 2023.10.10 |
파이썬 리스트 항목 삭제 (0) | 2023.10.09 |
파이썬 리스트 항목 변경 (0) | 2023.10.07 |
댓글